Sunrise Clinic — live token queue patients track from their phone
Cuts patient check-in to ~3 seconds and gives every patient a live, self-updating wait time — replacing paper tokens and 2-hour blind waits at clinic
10s->3s
To add a patient & assign a token
< 1s
Both screens sync live, no refresh
5
Real visits behind every wait estimate
Overview
76% of India's 1.5 million clinics still run on paper token slips. Patients wait 2–3 hours with no idea when their turn comes, so they can't step out for water or a call, and tension builds in a crowded room. The receptionist holds the entire queue in her head; the doctor has no view of the load. The core gap: the queue's real state lives only on a paper pad at the front desk. There's no shared, live source of truth a patient can check from their seat — or their phone — without walking up to ask "how long?" Process I started from the three questions the brief grades on: sub-10-second check-in, live patient updates, and real-data wait times. That pointed straight to one architecture — a single authoritative server pushing a full state snapshot over WebSockets to every screen on each change. My first wait-time attempt let the receptionist set an average and multiply. It worked, but it's a hardcoded guess. I replaced it: the server timestamps each consultation and averages the last 5 real ones, so the estimate adapts to the day's actual pace. No-shows are excluded so they can't skew it. I prototyped storage in-memory, then added MongoDB with a file fallback so it still runs with zero setup. Late on I added role-based login, enforcing staff actions on the server — not just hiding them in the UI. Results Check-in dropped to ~3 seconds (one field + Enter), beating the 10-second target. Both screens sync in under a second on "call next" with no refresh, verified by an automated multi-client socket test. The wait estimate is computed live — a test confirms it switches from the configured default to real measured data the moment the first consultation completes. Role enforcement is real: a test proves a patient token can't drive the queue yet still receives live updates. MongoDB persistence survives a server restart, verified with an in-memory Mongo test Reflection I validated with automated tests, not real users — the honest gap. Next time I'd run a 5-person test in an actual waiting room and watch the real success metric: do patients trust the ETA enough to step away? I'd report that measured number instead of inferring it. Technically, my estimate treats every consultation as equal, but a check-up and a dressing change differ — I'd segment the average by visit type. I'd add an SMS "you're next" alert for patients who leave the room, and a doctor dashboard, the one view nobody has today. I'd also load-test concurrency well beyond two clients.