Customer app study · Arabic-first loyalty
From a phone, a driver sees a balance, holds up a code, redeems a reward, files a complaint.
21 screens designed in Arabic-first RTL; five are still placeholders; the mobile end-to-end test suite is not yet in place. Preparing for store release — not yet in stores.
Evidence. The design and code are archived in the source repository. The slots below render labelled placeholders — no customer-app capture is published with this case study. A real capture pass is planned for the next phase.
The customer's loop
Five steps, traced to the screen catalog.
- Step 01
Discover stations
Five public screens show the network, the reward catalogue and a persistent sign-up prompt before login. Discovery is intentionally not gated.
- Step 02
Register
Three registration screens cover consent, name and OTP verification. The interim email-port is designed, not implemented.
- Step 03
My QR
Two login flows plus the rotating QR screen — single-use, signed, expired on first scan.
- Step 04
Redeem reward
Authenticated surfaces: home, my vouchers, voucher reveal and redeem confirm. Idempotent on retry.
- Step 05
Submit complaint
Submission posts to the API with an Idempotency-Key; internal notes never appear in the customer-facing resolution field.
What we built
21 screens, four groups, five placeholders called out honestly.
21 screens in 4 groups (Public 5, Registration 3, Login 2, Authenticated 11) catalogued in the design spec. Arabic-first with RTL; Latin digits for points and countdowns. Five screens — My QR, Redeem Confirm interstitial, Voucher Reveal, My Vouchers and History — remain placeholder bodies.
What is next
Preparing for store release.
Store release is gated on a short list of work the platform does not do today. Each item is a deliberate follow-up rather than an oversight in the current build.
- Store submission (Google Play, App Store) — blocked on a production signing key.
- OTP delivery adapter — the interim email-port is designed, not implemented.
- Account deletion — absent today across API, app and website.
- Privacy Policy text and in-app Terms — placeholders remain for the legal entity.
- iOS bundle configuration — no current-Xcode archive yet.
Real visual proof
What the page can show today.
Public stations list — placeholderNo customer-app capture is published with this case study. A real capture pass is planned for the next phase, with redaction of any literal identifiers before any image is approved. Authenticated home — placeholderNo customer-app capture is published with this case study. A real capture pass is planned for the next phase, with redaction of any literal identifiers before any image is approved. My Vouchers — placeholderNo customer-app capture is published with this case study. A real capture pass is planned for the next phase, with redaction of any literal identifiers before any image is approved. Profile — placeholderNo customer-app capture is published with this case study. A real capture pass is planned for the next phase, with redaction of any literal identifiers before any image is approved. Redeem confirm interstitial — placeholderNo customer-app capture is published with this case study. A real capture pass is planned for the next phase, with redaction of any literal identifiers before any image is approved.
What this page cannot show
Preparing for store release — no store listing yet.
- No production OTP delivery today — the interim email-port is designed, not implemented.
- No customer-app capture is published with this case study. The slots above render labelled placeholders.
Other product studies
Move between the three products.
Manager dashboard
Stations, workers, customers, transactions, complaints and offers — role-based, Arabic and English.
Dashboard is live and used internally; no live screenshots published.
Read the manager dashboard studyWorker app
Android station operations; scanner-led; 14 screens with server-authoritative hand-offs.
No production-station deployment or POS hardware qualification yet.
Read the worker app study