SMITHA YENUGU
Featured project
Queue Cure
76% of India's 1.5 million clinics still run on paper token slips and shouting. Patients wait 2–3 hours with zero visibility into when they'll be called. Doctors have no dashboard. Receptionists manage everything from memory. You're going to fix that. Queue Cure '26 is a beginner-friendly Full Stack hackathon hosted on Wooble — India's portfolio-first hiring platform where builders get hired on what they build, not what their resume says. What to build: Screen 1 — Receptionist view: Add patient, call next token, set average consultation time Screen 2 — Patient waiting room view: Current to Process Designed the backend as a single source of truth, with Socket.IO broadcasting one shared queue state to both screens — so no client-side sync logic needed. Built the event contract first (add-patient, call-next, set-avg-time, pause-queue), then the UI on top. Computed wait time live (position × avg time, never hardcoded), handled concurrency via Node's single-threaded event loop, and covered edge cases like empty queues, mid-session joins, and refresh recovery. Deployed backend on Render and frontend on Vercel, connected via environment-based config and CORS. Results Built and deployed a fully working real-time queue system — live at queue-cure-chi.vercel.app. Both Receptionist and Waiting Room screens sync instantly via Socket.IO, with zero refresh needed. Wait time is calculated dynamically (queue position × avg consultation time), never hardcoded. Concurrency handled correctly — simultaneous actions never create duplicate tokens. Frontend (Vercel) and backend (Render) deployed independently, connected via env config and CORS. Shipped end-to-end solo, including resolving real deployment bugs: Git encoding issues, branch mismatches, cross-origin WebSocket Reflection I'd add persistent storage (database) from the start instead of in-memory state, so the queue survives a server restart. I'd also add basic authentication on the Receptionist screen, since right now anyone with the URL can modify the queue. Given more time, I'd add a reconnection indicator so staff know immediately if a screen silently loses its socket connection — right now that failure mode is invisible until something looks wrong.