An upload you can follow, file by file, until it’s ready to use.
File Service is ICPSR’s reusable service for uploading, processing and describing research files. I defined its UX: upload progress, processing states, metadata display and the status view for staff.
- Years
- Apr 2022 – now
- My role
- UX designer, ICPSR
- Team
- ICPSR project team
- Status
- Live on every ICPSR site and hosted archive
What I covered
Overall role UX designer Steps 1–5
Every ICPSR app handled files its own way, and users couldn’t see what happened next.
Files are the core of ICPSR’s archive: research data, documentation and supplementary materials from researchers around the world. Different applications handled upload, processing and metadata differently, which made the experience harder to maintain and harder to trust. I started the renewal in April 2022.
At 100%, the transfer was done. The file wasn’t ready yet.
I ran needs-discovery interviews twice: once at the start and once after the project was rescoped. Two in-depth interview sessions then filled in the detailed needs for the new scope. Once a design was confirmed, I tested it in small usability sessions and iterated.
One at the start, one after the rescope.
On the detailed needs of the rescoped project.
On each confirmed design, then iterated.
The old uploader reported one state for the whole batch and told people to refresh the workspace themselves. After the progress bar filled, validation, metadata processing and file preparation still ran out of sight, and the file’s actions stayed disabled with no explanation.
- Click upload
- Uploader popup
- Upload hits 100%popup can close
- File appears in list
- Actions disabledno reason given
- Ready
- Upload starts
- Transfer completes
- Post-processing begins
- Validation checks
- Metadata processing
- File preparation
- File available

Users ranged from first-time depositors uploading a single file to principal investigators managing many files across multi-year studies. Staff needed provenance and processing history. Researchers needed to know their files were safe.
Unfinished work stays in the uploader. The browser shows only files you can act on.
I split the experience into two surfaces with separate jobs. The MVP focused on three things: upload progress people could understand, visible processing states, and status updates as files moved through the service. The staff view was designed separately from the researcher view, and both got clear error states.
- 01File uploaderA temporary workbench. It holds work that is still uploading, processing or needs attention, and disappears once every upload has finished.
- 02File browserThe completed surface. It shows only files and folders that are finished, with metadata, access state and actions ready.
Screen size and importance don’t move together
Earlier designs treated the file list as a breakpoint problem and hid metadata as the screen got smaller. Discovery showed two separate axes. A PI on a phone reviewing an archived deposit and a first-time depositor on a desktop need different fields, whatever the screen size. Each metadata field got a tier from both axes together.
| Small screen | Large screen | |
|---|---|---|
| High importance | Tier 1 · Critical metadata onlyStatus, file name and the few cues needed to decide what happens next. | Tier 2 · Expanded metadataMore fields stay visible because the task is important and space allows it. |
| Low importance | Tier 4 · Hidden until requestedLow-priority fields stay out of the way on constrained screens. | Tier 3 · Secondary metadataSupporting fields can appear without competing with primary actions. |
I worked with the developers through implementation.
The MVP shipped with these patterns. Later updates added support for more complex file structures, batch workflows and larger deposits.
Live on every ICPSR site and every archive ICPSR hosts.
I still pick up fixes as they come in.
Reusable file-service UX with clearer upload progress, processing visibility and status feedback.
File lists adapt to screen size and to how much a field matters for the task.
Error and processing states are easier to recognize, explain and recover from.