01 Overview

Shelf to Shelter

Relief supplies, from warehouse to shelter.

A clickable prototype. Every role works, failures included.

  • Product Design
  • Prototyping
  • Multi-role Flows
  • Accessibility
  • Claude
  • Figma
  • Leaflet
  • OpenStreetMap
  • Pen and paper
  • My brain
  • 5

    roles, plus a public page

  • 151

    pages checked, across 17 accounts

  • 11

    features from 2 sync transcripts

  • 500 m

    location check, even offline

Counts from the prototype's demo data. No real-user numbers yet.

A warehouse accepting what it can send

02 The problem

Many hands, one request, and no signal

  1. Shared

    Nobody owns it all

    Many organisations share one request. Nobody sees the whole plan.

  2. In the field

    Poor signal

    Drivers have patchy signal and GPS. Every step had to cope.

  3. Moving scope

    A demo first

    First users saw a serverless demo. Daily syncs kept changing it.

Five roles and the public

  • Platform admins

    Declare disasters, see everything

  • Relief leads

    Open shelters, raise requests

  • Shelter managers

    Ask for what they need

  • Warehouse managers

    Decide what they can send

  • Volunteer drivers

    Collect and deliver, on a phone

  • The public

    A disaster's page, no personal details

There was no earlier tool. "Before" is my own first prototype.

Before: my first prototype

  1. Pick a person in "Using it as"
  2. Admin tags warehouses by hand
  3. Relief lead asks those warehouses
  4. Warehouse checks its stock page
  5. Warehouse assigns a driver
  6. Driver delivers, needs signal throughout

After

  1. Sign in with a code
  2. Declare a disaster, drivers asked to help
  3. Add a shelter inside the area
  4. Request goes to warehouses in reach
  5. Warehouse enters what it sends
  6. A driver claims and collects it
  7. The public page updates

Right supplies, right shelter, while it matters. Each person's next step stays clear.

03 Role & scope

End-to-end UX from a loose brief

  • Senior UX Designer

  • 2 months

    From September 2026

Decided together

  • The project lead

    Gave me the warehouse redesign. Set pickups and opt-in.

  • The developers

    Daily syncs. Wanted a public page and offline mode.

  • The client's stakeholders

    Asked for temporary or permanent shelters

  • An AI pair

    Helped build and audit

04 Requests & acceptance

One request, covered in parts

The hard call: what about stock?

Requests · Accept

From "You have 900" to zero

Tried

"You have 900"
Filled in from stock
  • A stock page and accept wizardWarehouses manage stock elsewhere. Drivers now claim jobs.
  • Tagging warehouses to disasters in advanceNow requests find warehouses in reach. The search widens if nobody accepts.
  • Pallet capacity on every warehouse Next phaseStock and storage are out of scope.
  • Cards showing "You have 900", forms pre-filledMy call: it's delivery, not inventory. Managers check their own shelves.

Shipped

Starting from zero

Cards show need and distance, not stock. Every line starts at 0.

Stock came and went twice. Every version still opens.

Decided with The team, after I flagged it

05 The driver's phone

Only the jobs you can help with

Drivers are volunteers on a phone.

Drivers · Get jobs

From fleets to drivers who opt in

Tried

  • Fleets, with an add-driver wizard Next phaseAll drivers are volunteers, so fleets went.
  • The warehouse assigning a driver while acceptingNow any eligible driver claims it first.
  • Alerting every driver everywhereNarrowed to free drivers who opted in.

Shipped

Drivers within 150 miles get asked. Jobs go to free drivers who joined.

No tracking: location updates on opening.

Decided with The project lead

Drivers · Pickup

From a buried button to pinned

Tried

Two headers, no button
  • Two titles, and Confirm pickup buriedDrivers scrolled past every turn to continue.
  • Confirm buttons that were always onNow unlocked within 500 m.

Shipped

A checked pickup

One top bar; actions pinned below. Steps unlock within 500 m, even offline.

Overrides are reported, with the reason.

Decided with The developers · The project lead

06 Getting in

You are who signed in

Getting in · Sign in

From persona switcher to one-time code

Tried

A persona switcher
  • A branded demo wrapper with inspectorsRejected early. Stakeholders needed the product, not a harness.
  • A "Using it as" persona switcherIdentity should come from signing in.
  • An email-or-phone dropdownOne Email/Phone field is simpler. An @ means email.
  • Picking a disaster first at sign-upSigning up never tags a disaster.

Shipped

One field, one code
Signing in with a code

One field, and a five-minute code. Three wrong tries pause it briefly.

The public page shows no personal details.

Decided with The developers · The project lead

07 Disasters & shelters

Let the map do the typing

Relief leads add shelters under pressure.

Shelters · Add

From one long form to two steps

Tried

One long form
  • One long Add shelter formToo long for a stressful moment.
  • A state dropdownThe map pin already carries the state.
  • Manual "Reach, in miles" fieldsThe disaster type now sets the area.
  • Shelters with no typeReal shelters are buildings or tents.

Shipped

Two short steps

Who and what first, then where. Shelters must sit inside the disaster area.

A shelter once landed miles away.

Decided with The project lead · The client's stakeholders

Disasters · Look

From grey wireframes to one style

Tried

One of five looks
  • A greys-only wireframe kitKept until a look was agreed.
  • The same app in five stylesFlows mattered here, not a design system. So I picked HeroUI, ready-made.
  • Ten rounds per component, then three densitiesB for desktop, C for phone. I refined B in Figma.

Shipped

The chosen look
Refined in Figma

HeroUI became the base from then on. Every card got a map.

My Figma frames set the card spacing.

08 Checking the work

A prototype that checks itself

It checks words, numbers and access. I also swept every role and page.

The same screen with one top bar and Confirm pickup pinned at the bottom.The driver's Directions screen with the title shown twice and no Confirm pickup in view.BeforeAfter
The driver's Directions, before and after. Drag to compare.

What it found

  • Wrong requests listed

    Fixed

  • Failure simulator

    Now covers sign-in and driving

  • Default-blue checkboxes

    Passed contrast; screenshots caught them

  • Clean after removing stock

    Every page checked

Next phase

  • Real sign-in

    Plus routing and push notifications

  • Kit builders

    For request templates

  • Split requests

    One request, several shelters

  • A job queue

    For busy drivers

← Back to work