Overview
A gamified iOS trainer that turns the first two weeks of roulette-dealer school into an app. Random wheel results, timed payout drills, section / street / split pattern recognition, cohort leaderboards, and a teacher dashboard to assign modules and spot weak areas.
Challenge
Croupier training was chalkboard + paper payout cards. Instructors spent most of their time running drills one-on-one. The school needed a way to let dealers practise between in-person classes without eating more instructor hours.
Solution
SwiftUI iOS client with a Django REST backend for accounts and progress sync. Offline-first — trainings happen on venue tablets with flaky Wi-Fi, so everything works without a connection and syncs the moment one returns. Teacher dashboard runs on the same backend as a plain web app.
Key features
- /01Timed payout drills
Random wheel result, random bet type; dealer must call the correct payout within the time limit.
- /02Pattern recognition
Sections, streets, splits, corners — muscle-memory drills for high-speed calling at a live table.
- /03Cohort leaderboards
Dealers see their rank within their training class; instructors see weak points across the cohort.
- /04Offline-first sync
Works fully offline on venue tablets; progress and scores sync the moment a connection returns.
Tech & stack
SwiftUI iOS app (one codebase for iPhone + iPad), Django REST backend, PostgreSQL. Offline sync via a local SQLite mirror and an idempotent write-log.




