Demo controls
Offline (aeroplane mode) — entry becomes manual, records queueNFR-CON-001/003/004
Force one low-confidence field on next entryFR-VID-005
Next arriving car:
Reset demo
Inactivity sign-out — locks the app, keeps the outboxNFR-SEC-004 / FR-USR-012
Lock now
What this demo proves
Try this script:
Log a car in (Exterior Only, then Wash & Dry) — watch the
counter stay under 10.
The plate DR 45 XY GP is a returning vehicle with a stored
contact (FR-VID-008, FR-NOT-009).
Tap a car on the board: start, move bay, complete, pay, exit —
each within 3 taps.
Exit an unpaid car to see the warning (FR-PAY-004); use
Old wash — take payment with plate GP 987 654 or
cellphone 083 111 2233 (FR-PAY-008).
Toggle offline, log a car manually, then reconnect — queued count
ticks down and a sync conflict appears, flagged but never blocking
(NFR-CON-006).
Tap Lock now to simulate the inactivity sign-out — unlock
with fingerprint (1 tap) or PIN; queued records survive the lock
(FR-USR-012, NFR-CON-005).
On the returning vehicle's contact screen, record a
STOP request (FR-NOT-010) — that number is never messaged
again; the wash completes with the READY flag instead.
No total, report, or aggregate appears anywhere (FR-USR-007) — only
the single wash's price (FR-WSH-006). Prices in ZAR (FR-ORG-008).
The (FR-…) tags on screens are spec references for reviewers — the
real app ships without them. All labels follow the plain-language
pass in the wireframes doc §2.2 (low-LSM, low-literacy operators).