Queue Cure — Real-Time Clinic Queue Management System
Replaced paper token slips with a live two-screen queue system — patients see their wait time tick down in real time, no refresh needed.
Overview
76% of India's clinics run on paper token slips. Patients wait 2–3 hours with zero visibility into when they'll be called.
The real problem isn't the wait — it's the uncertainty. A patient who knows their ETA sits calmly. One who doesn't crowds the front desk constantly.
Queue Cure fixes this with a live receptionist dashboard and a real-time patient display. No app, no refresh, no shouting.
Process I broke the problem into two user needs: receptionist speed and patient clarity.
For the receptionist — one-tap actions, no confirmation dialogs, always-visible queue. For the patient display — one big token number, one live countdown, readable from across the room.
I chose Socket.io over polling so updates push instantly on 'Call Next'. I added a server-side mutex to prevent two tabs dequeuing the same patient simultaneously.
For ETA, I skipped the obvious wrong answer (tokens × fixed average). Instead the server tracks a rolling average of actual completed consults and subtracts time already elapsed — accuracy improves as the day goes on.
Results Two-screen live sync under 200ms — patient display updates before the receptionist's hand leaves the mouse.
ETA improves throughout the day as rolling average builds from real data, not a hardcoded estimate.
Handles no-shows, priority patients, and mid-session time changes without losing queue state.
Patient display needs zero setup — just a URL on any screen in the waiting room.
Reflection Add a personal QR code so patients get their own live link and can step outside without missing their turn.
Swap in-memory state for Redis so the queue survives a server restart — a crash right now loses everything.
Add a doctor-side 'Ready' button so the call signal comes directly from the doctor, not a verbal cue through the receptionist. That last human link is the slowest part of the flow.