Case Study 1 - UX & Flow (Auth‑Gated, Human‑Friendly)
Author
Andrew
Date Published

Series: Part 1 of 6
Role: Project Lead (discovery → high‑fi)
Stack lens: Power Pages, Dataverse, SharePoint, Liquid, custom SCSS
The brief behind the brief
We didn’t just need a prettier listings page; we needed a first minute that matters. Stakeholders asked for a search experience that was fast and trustworthy and a business rule that gated search behind sign‑up/sign‑in so only eligible Specialist Disability Accommodation (SDA) participants (and their coordinators) were in the funnel. My job was to make the gate feel like a front door, not a brick wall.
North star: “Find a viable property in under a minute - without guesswork or dead ends - while meeting the eligibility and consent requirement.”
What this meant in practice
- The public marketing pages stay open and indexable.
- Search, listings, and detail become authenticated features tied to Participant/Coordinator roles.
- Consent and a light eligibility attestation are part of sign‑up - clear, short, respectful.
Flow, then pixels
I started with white‑board boxes and arrows, then moved to low‑fi Figma frames:
home → sign up / log in → eligibility check → search → cards → detail → apply.
Only once the path felt honest did I paint it.
User Journey

Why this order works
- The gate is light: sign‑in or quick sign‑up, pick your role (participant/coordinator), confirm eligibility, accept a plain‑language consent statement. Then search unlocks.
- We don’t over‑collect suburb‑level context and contact are enough pre‑application. Everything sensitive lives later in Apply.
- Marketing pages stay public and indexable; the catalogue sits behind auth.
Auth & Eligibility

Low‑fi to high‑fi: the decisions that matter
Low‑fi frames let us argue about flow without getting distracted by colour. High‑fi captured the reusable bits and the voice.
Kept from low‑fi
- Search and filters are above the fold; chips show active filters.
- The eligibility step is one screen with minimal fields and a clear consent line.
- Property cards show only what helps choose: type, suburb, bedrooms, SDA category, a tiny badge for availability.
Added at high‑fi
- Clear two‑door path: “I’m an SDA participant” / “I’m a support coordinator.”
- Microcopy that tells the user why we ask: “We gate search to ensure listings are used by eligible SDA participants and coordinators.”
- A tiny progress breadcrumb on Apply (Step 1 of 3) so users never fear a scroll‑abyss.
- Empty‑state coaching that suggests broadening filters or nearby suburbs when results are thin.


Mobile first, then stretch
- Filters collapse into chips and a modal on small screens; keyboard/VO order is preserved.
- Card content reflows to keep touch targets ≥ 44px. No precision tapping required.
Handover notes
I didn’t maintain a separate token sheet/component spec - Figma was the source of truth. Dev Mode exposes variables (colours, spacing, radii) and component states for inspection. That kept velocity high as a solo builder and ensured code mapped cleanly to design.
UX writing: plain words, precise intent
- Eligibility copy: “I confirm I’m eligible for Specialist Disability Accommodation (SDA), or I’m a support coordinator acting on behalf of an eligible participant.”
- Consent copy: “I agree NDISP may contact me about properties I view or apply for. You can update this later.”
- Privacy guardrail: “Street addresses appear after an application progresses. Listings show suburb/region only.”
- Why gate copy (inline explainer): “We protect participant privacy and keep this catalogue relevant to people in SDA.”
These lines reduce ambiguity, improve trust, and support later table‑permission logic.

Error & help copy (examples)
- “Please choose Participant or Coordinator so we can show the right options.”
- “We couldn’t verify your session. Try signing in again.”
- “No properties match those filters yet. Try expanding the suburb or removing a feature.”
Accessibility is table stakes
From day one: contrast that passes WCAG AA, visible focus rings, keyboard‑first flows, and components that announce themselves correctly.
- Filter chips are buttons with
aria-pressed
and a clear pressed state. - Form errors tie to inputs via
aria-describedby
; success messages never rely on colour alone. - Colour tokens in Figma map straight to theme variables in code, so the UI stays consistent.
- Focus order matches visual order; the Skip to filters link appears for keyboard users on listings.


Screens that tell the truth
The high‑fi kit moved as a small constellation of screens:
- Auth + Eligibility: one screen, two roles, one confirmation, one consent.
- Listings: filters, chips, paginated cards, empty‑state that teaches how to broaden a search.
- Detail: scannable facts, eligibility summary, stable gallery hero.
- Apply: three steps, clear labels, inline validation. Save isn’t needed for v1 (not enough steps to justify friction).
Micro‑interactions
- Apply CTA sticks on mobile without covering content.
- Filters announce counts (“4 results”) to assistive tech after updates.

Edge cases and how we softened them
- Friction at the gate? Keep the form minimal; allow SSO if available; show why we ask. Later, A/B a read‑only preview (blurred cards) with a prompt to sign in for details.
- No results found? Offer nearby suburbs and relaxed filters; keep a visible “Clear all” action.
- Slow connections? Skeleton screens; first paint favours filters and cards; images lazy‑load with fixed width/height to avoid jumps.
- Expired sessions? Retry pattern on queries; gentle reauth prompt that preserves the last state.

What we deliberately cut (v1 scope discipline)
- Guest deep browsing: avoided to respect the eligibility requirement; marketing pages cover discovery.
- Map‑heavy UI: cards + filters solved the decision faster; maps are a future enhancement.
- Save & resume: unnecessary for the short apply flow; noted as a v2 candidate.
What success looked like (without hard numbers)
We didn’t get a long runway for analytics post‑launch, so I used qualitative signals and proxies during review:
- Review sessions where coordinators could find a viable option within a minute on the prototype.
- Fewer “where do I click next?” questions in stakeholder playbacks.
- Back‑office editors publishing without hand‑holding (a sign the screens matched the schema you’ll see in Case 3).
- Auth + eligibility working without support tickets during cut‑over.
If runway had continued (measurement plan)
- Track time to first result from sign‑in to filtered list.
- Record apply step drop‑off (no PII; aggregate only).
- Watch filter usage to prune low‑value facets and promote high‑value ones.
From Figma to build (preview of the next cases)
Design decisions were made with build in mind: components are small and composable; copy is plain; states are explicit. That’s why the rest of the series plugs in cleanly:
- Case 2: Turning tokens/components into a theme and small Liquid parts.
- Case 3: Schema that mirrors these screens, with Participant/Coordinator roles and consent stored on the profile.
- Case 4: A model‑driven app that prevents half‑published listings.
- Case 5: Automation that turns uploads into stable galleries.