Flow 00.A ● Demo 1
Login
Single entry point for all roles. Role is resolved server-side after authentication — no role selector shown. On success the user is routed to their role-appropriate dashboard.

Key UX Principles

  • Strong brand presence at entry point
  • Minimal friction — email + password only
  • Error shown inline, email field preserved
  • No "forgot password" in Demo 1
1. Sign In
Credentials entered, ready to sign in
Routes by role on success
2. Error State
Failed attempt — email preserved, error shown inline
Email field not cleared No account lockout in Demo 1
00.C ● Demo 1 ○ Full Product
App Header — Badge States
The right-hand side of the app header adapts to the authenticated user's org and role profile. Four states are possible. In Demo 1 all badges are display-only — the tappable popup (Flow 00.B) is a Full Product feature. States 2–4 show the full range of contexts available to that user profile: each nav strip shows the header as it appears when that context is active, and the divider label shows whether switching to it is instant or requires identity re-verification.

Display Rules

  • One org + one role → role only, badge is non-interactive
  • One org + multi-role → role only, badge shows ▾ and opens popup
  • Multi-org → org name shown above role in a two-line badge
  • All tappable badges show ▾ chevron to signal interactivity
  • Lock badges (🔒) appear inside the popup — not on the closed badge
  • In Demo 1 all badges are display-only regardless of profile state
State 1 — 1 org · 1 role
Only context

Home

Demo Transport Pty Ltd

One context — badge is display-only
No ▾ chevron — badge is not tappable ·Most Demo 1 users will see this state
State 2 — 1 org · Driver + Manager
Active context
→ tap badge → switch instantly
Also available
Role switches instantly — same org, no re-auth
Same org — no re-auth required to switch ·Org name not shown — single org, no ambiguity Either role can be the "active" starting point
State 3 — Driver (DT) + Assessor job (RF)
Active context
→ tap badge → verify identity 🔒
Also available
All switches require re-auth — different org each time
Both are different orgs — 🔒 on all popup buttons Org always shown — user always knows which data scope is active ·Assessor is an external invited role at Regional Freight
State 4 — Manager + Driver (DT) + Assessor job (RF)
Active context
→ tap badge → switch instantly
Also available — same org
→ tap badge → verify identity 🔒
Also available — external org
Mixed: instant within org, re-auth across orgs
Manager ↔ Driver switches instantly — same org → Regional Freight · Assessor needs re-auth 🔒 Org name always shown — active data scope is never ambiguous
Flow 00.B ○ Full Product
Org & Role Switcher
The recommended design uses two-line buttons — organisation name prominent, role beneath — to show all available switching options in a compact popup. A lock badge (🔒) on cross-org buttons signals that tapping will trigger identity verification. Same-org role switches are instant; cross-org switches go straight to identity verification, which serves as both security gate and confirmation. Scenario A shows the standard multi-role / multi-org flow. Scenario B shows the external assessor use case with data scope isolation. Earlier design iterations are in the collapsible panel below.

Key UX Principles

  • Entry point: tap the role badge — always visible in the header
  • One org · one role — badge is non-interactive, no popup opens
  • Current org / role shown as navy filled button; others as outlined buttons
  • Same-org: tap any outlined button to switch instantly — no confirm step
  • Cross-org: 🔒 lock badge on button — tap goes straight to identity verification
  • Re-auth screen states the destination and offers cancel — nothing changes until verified
  • Session state clears only after successful re-auth; new role's view then loads
Design Iterations — how we got here
Starting point  The initial design (Option A) used separate Organisation and Role sections with radio selectors and a "Switch Context" confirm button. The problems: "switch context" is technical jargon; a separate confirm step before re-auth is redundant friction; and in the common case (single org, multiple roles) the separate sections added visual complexity without value. Options B → D explored progressively simpler approaches, arriving at the two-line button pattern with a lock badge for cross-org.
Option ATwo-section popup: separate Organisation and Role selectors. Interactive when multiple options exist; locked static text when only one option.
1. One org · One role

Home

Demo Transport Pty Ltd

Fit-for-Duty
Complete · 07:31 am
Pre-Start
Complete · 07:43 am
Organisation
Demo Transport Pty Ltd only org
Role
Driver only role
No other org or role available.
Fully locked — info only, no action
No Switch button shown ·Most demo users will see this state
2. One org · Multi-role

Home

Demo Transport Pty Ltd

Fit-for-Duty
Complete · 07:31 am
Pre-Start
Complete · 07:43 am
Organisation
Demo Transport Pty Ltd only org
Role
Manager
Driver
Switch Organisation / Role
Org locked — role still switchable
Org section shows as info — no radio ·User can switch between Manager and Driver
3. Multi-org · Multi-role

Dashboard

Demo Transport Pty Ltd

Ready
3/5
Defects
2
Lic exp
1
VOC exp
1
Organisation
Demo Transport Pty Ltd
Regional Freight Services
Role
Manager
Driver
Switch Organisation / Role
Both orgs & both roles interactive
Orange ring on badge = popup is open ·Filled dot = currently active selection
4. After switching org

Dashboard

Demo Transport Pty Ltd

Ready
3/5
Defects
2
Lic exp
1
VOC exp
1
Organisation
Demo Transport Pty Ltd
Regional Freight Services
Role
Driver only role
Switch Organisation / Role
Org switched → role auto-selects & locks
Regional Freight now selected Driver is the only role → locked ·Role section updates without page reload

Option BFlat combined context list. Same-org role switches are instant — no confirm needed. Cross-org switches show a labelled confirm button only after the target row is tapped.
1. One org · One role

Home

Demo Transport Pty Ltd

Fit-for-Duty
Complete · 07:31 am
Pre-Start
Complete · 07:43 am
Badge tap has no effect — nothing to switch
Badge is non-interactive — no ring, no popup ·Only org shown for Option B when no other context exists
2. One org · Multi-role

Home

Demo Transport Pty Ltd

Fit-for-Duty
Complete · 07:31 am
Pre-Start
Complete · 07:43 am
Switch Role
Manager
Driver
Tap a role to switch instantly — no confirm needed.
Tap outside to close.
Same-org role switch — instant, no confirm
Tapping Manager switches immediately ·No confirm button — same org, low risk
3. Multi-org · Multi-role

Dashboard

Demo Transport Pty Ltd

Ready
3/5
Defects
2
Lic exp
1
VOC exp
1
Switch Organisation / Role
Demo Transport · Manager
Demo Transport · Driver
Regional Freight · Driver
Same-org roles switch instantly. Cross-org shows a confirm button.
Tap outside to close.
All orgs and roles listed flat — current highlighted
Filled dot = current org / role ·Same-org switches instantly; cross-org needs confirm
4. Cross-org selected

Dashboard

Demo Transport Pty Ltd

Ready
3/5
Defects
2
Lic exp
1
VOC exp
1
Switch Organisation / Role
Demo Transport · Manager
Demo Transport · Driver
Regional Freight · Driver
Switch to Regional Freight · Driver
Tap outside to cancel — no change.
Cross-org tapped — confirm button appears
Tapped row highlighted in orange tint Confirm button names the destination explicitly Tapping confirm triggers identity verification — see Scenario below for the full re-auth flow

Option CButtons replace radio dots — each available org and role shown as a two-line tappable button. Same-org switches are instant; cross-org shows a confirm button after the destination button is tapped.
1. One org · One role

Home

Demo Transport Pty Ltd

Fit-for-Duty
Complete · 07:31 am
Pre-Start
Complete · 07:43 am
Badge tap has no effect — nothing to switch
Badge is non-interactive — no popup
2. One org · Multi-role

Home

Demo Transport Pty Ltd

Fit-for-Duty
Complete · 07:31 am
Pre-Start
Complete · 07:43 am
Switch Organisation / Role
Demo TransportDriver
Demo TransportManager
Tap to switch instantly — no confirm needed.
Tap outside to close.
Same-org switch — tap Manager to switch instantly
Navy filled button = current selection ·Outlined button = available, instant switch
3. Multi-org · Multi-role

Dashboard

Demo Transport Pty Ltd

Ready
3/5
Defects
2
Lic exp
1
VOC exp
1
Switch Organisation / Role
Demo TransportManager
Demo TransportDriver
Regional FreightDriver
Same-org switches instantly. Cross-org shows a confirm button.
Tap outside to close.
All options visible — org name prominent, role beneath
Org name is the primary label — role is secondary ·Regional Freight is cross-org — will need confirm
4. Cross-org selected

Dashboard

Demo Transport Pty Ltd

Ready
3/5
Defects
2
Lic exp
1
VOC exp
1
Switch Organisation / Role
Demo TransportManager
Demo TransportDriver
Regional FreightDriver
Switch to Regional Freight · Driver
Tap outside to cancel — no change.
Cross-org tapped — orange border, confirm button appears
Orange border + tint on selected button Role label turns orange — reinforces the destination Tapping confirm triggers identity verification — see Scenario below
⚠ Open question — same-org access escalation  Currently, switching from Driver to Manager within the same org is instant with no verification. Since Manager has significantly broader data access than Driver, this upward role escalation may warrant re-authentication — the lock badge pattern could apply here too. Switching down (Manager → Driver) is not a concern; you are reducing your own access. Recommend discussion with legal / governance team before build. See also data governance doc FD-12.

💡 Future consideration — combined role dashboard  An alternative to context-switching was discussed: a single post-login dashboard combining all roles' data and actions in one view. Advantages: fewer taps, no "which mode am I in?" friction for same-org multi-role users. Decided against for the current build — it complicates data minimisation (APP 3) and use/disclosure boundaries (APP 6), makes HVNL/CoR audit attribution less clear (who acted, in which capacity?), and still requires cross-org switching anyway, giving us two coexisting paradigms for no net gain. Context-switching remains the correct approach. A lighter future option worth revisiting: a "my tasks" nudge widget on the Manager dashboard surfacing pending Driver tasks without a full role switch, keeping attribution clean.
Scenario ARecommended design. Standard multi-org / multi-role flow — two-line buttons, lock badge on cross-org options, re-auth as the combined security gate and confirmation.
1. One org · One role

Home

Demo Transport Pty Ltd

Fit-for-Duty
Complete · 07:31 am
Pre-Start
Complete · 07:43 am
Badge tap has no effect — nothing to switch
Badge is non-interactive — no popup
2. One org · Multi-role

Home

Demo Transport Pty Ltd

Fit-for-Duty
Complete · 07:31 am
Pre-Start
Complete · 07:43 am
Switch Organisation / Role
Demo TransportDriver
Demo TransportManager
Tap to switch instantly — no confirm needed.
Tap outside to close.
Same as Option C — same-org is unchanged
·No difference from Option C for same-org switches
3. Multi-org · Multi-role

Dashboard

Demo Transport Pty Ltd

Ready
3/5
Defects
2
Lic exp
1
VOC exp
1
Switch Organisation / Role
Demo TransportManager
Demo TransportDriver
Regional FreightDriver🔒
🔒 = tap triggers identity verification before switching.
Tap outside to close.
Lock badge flags cross-org buttons before the user taps
Lock badge on Regional Freight — signals identity verification required ·Same-org buttons have no badge — tap switches immediately
4. Tap → re-auth immediately
🔒
Verify your identity
Switching to
Regional Freight · Driver
Face ID / Touch ID
or
Enter PIN
Cancel — stay where you are
Re-auth fires immediately — destination shown, cancel still available
One step fewer than Options B and C — no separate confirm button Destination is stated here ("Switching to Regional Freight · Driver") — user can read it before verifying "Cancel — stay where you are" is always available — nothing changes until re-auth succeeds

Scenario BExternal assessor use case — a manager at one org has been invited as assessor at another. Demonstrates the cross-org invitation flow, lock badge behaviour, and data scope isolation on switch.
⚖ Data governance  External assessors are invited by the org, not employed by it. On switching to the assessor org the full session state is cleared — no Demo Transport data remains in scope (APP 11). Access within Regional Freight is intentionally narrow: the assessor sees only their assigned VOC assessment workflow, with no visibility of fleet status, driver roster, management functions, or any other personal information held by that org (APP 3 — collection minimisation; APP 6 — use and disclosure limited to the stated purpose of the invitation). All actions taken in the assessor role are logged against Regional Freight's audit trail. A lock badge on the cross-org button signals that tapping will trigger identity verification. The re-auth screen then serves as both security gate and confirmation: it states the destination explicitly and the user can cancel at that point — nothing changes until re-auth succeeds (biometric via WebAuthn, or app-defined PIN as fallback). See data governance doc §4 (Re-Authentication), §5 (External Assessors), and open items FD-01, FD-04.
1. Popup open

Dashboard

Demo Transport Pty Ltd

Ready
3/5
Defects
2
Lic exp
1
VOC exp
1
Switch Organisation / Role
Demo TransportManager
Regional FreightAssessor🔒
🔒 = tap goes straight to identity verification.
Tap outside to close.
Manager at Demo Transport; invited Assessor at Regional Freight
Assessor entry appears because of the invitation Lock badge signals cross-org — identity verification required on tap
2. Verify identity
🔒
Verify your identity
Switching to
Regional Freight · Assessor
Face ID / Touch ID
or
Enter PIN
Cancel — stay where you are
Identity check fires before the switch completes
Nav still shows Manager / Demo Transport — not yet switched Biometric (WebAuthn) is primary; PIN is app-defined fallback — FD-01 Cancel here aborts the switch — no state change, no data cleared ·Session state only clears after successful re-auth
3. Assessor dashboard

Assessments

Regional Freight Services

VOC Assessment
T. Williams · Rigid · Due today 14:00
DUE
VOC Assessment
R. Okafor · B-Double · Scheduled tomorrow
SCHED
Scoped assessor view — Regional Freight data only
Badge shows "Assessor" — role change confirmed Only assigned VOC assessments visible — no fleet data, no driver roster Org sub-header confirms active data environment ·Demo Transport data entirely out of scope