YASWANTH K B IT
Featured project
QueueCure - Real-Time Clinic Queue System
76% of India's 1.5 million clinics run on paper token slips. Patients receive a number at the door and wait blindly — no visibility into position, no estimated time, no way to know if they're next or 50th. Average wait is 2–3 hours. Receptionists manage the entire queue from memory, with no dashboard, no undo, and no way to recover from mistakes. The gap isn't technology it's that no lightweight, real-time solution exists for a clinic with one receptionist and a TV on the wall. Process I mapped two users first: the receptionist (needs speed, mistake-proof) and the patient (needs calm, readable info from across the room). I chose Socket.IO over polling on day one 40% of the grade was real-time sync, so that decision had to be right. Built server-first as the single source of truth, then wired the frontend. First mistake: AnimatePresence mode="wait" inside a layout-animated list deadlocked exit animations — the no-show button appeared broken. Fixed with a plain conditional swap. The wait-time formula evolved from a static manual average to a rolling average of actual measured consultation durations, kicking in after 3 real data points. This made estimates genuinely data-driven, not hardcoded. Results 94/94 tests passing across three suites (stress, edge case, QA). Live sync verified across 3 simultaneous windows with zero page refreshes. Rolling average wait time engages after 3 real consultations and is visibly badged as a live estimate. All 7 edge cases handled: empty queue, WiFi drop with auto-reconnect, server restart persistence, concurrent receptionists, double-click guard, no-show exclusion from averages, and full undo. Deployed to Render as a single-origin service — one URL, both screens, no CORS. Reflection Add SMS/WhatsApp notifications when a patient is 2 tokens away the biggest real-world pain is patients wandering off and missing their turn. Replace JSON-file persistence with SQLite for clinic-scale reliability. Add multi-doctor mode with independent queues per room. I removed the "tokens ahead" label mid-build because it duplicated position — I'd have caught that earlier with a quick user test instead of building first. I also underestimated mobile layout work on the reception screen; next time I'd design mobile-first.