Bhavya Shrivastava
Featured project
QueueCure: Real-Time Clinic Queue Management System
Small clinics often manage patient queues manually, leading to long perceived wait times, confusion about whose turn is next, and repeated interruptions at the reception desk. Receptionists need to update patients manually, doctors lack visibility into the upcoming queue, and patients have no reliable way to track their position. This results in operational inefficiencies and a poor waiting-room experience. The goal was to create a centralised real-time queue management system that keeps receptionists, doctors, and patients synchronised through a single source of truth. Process I first mapped the workflow of a typical clinic visit, from patient registration to consultation completion. The system was divided into three user roles: Receptionist, Doctor, and Patient Waiting Room. I initially considered a polling-based approach in which each screen would repeatedly fetch updates, but this introduced unnecessary delays and additional network requests. I then switched to Socket. IO-based real-time communication so that queue changes instantly propagate to all connected screens. Backend built with Express, MongoDB, and Socket.IO, while the frontend was built using Next.js and React Query. I designed dashboards for each user role and tested queue transitions, including patient registration, calling the next patient, consultation completion, and waiting room updates. Results Successfully built and deployed a real-time clinic queue management platform with three synchronised interfaces. Queue updates now propagate instantly across Receptionist, Doctor, and Waiting Room screens through WebSocket communication. The system supports live patient registration, token generation, queue progression, consultation completion, waiting-time estimation, and real-time patient visibility. Testing confirmed successful synchronisation across multiple browser sessions without requiring page refreshes. The final solution was deployed using Vercel (frontend) and Render (backend). Reflection If given more time, I would implement role-based authentication, appointment scheduling, and advanced analytics for clinic administrators. I would also improve the waiting-time estimation algorithm by using historical consultation data instead of a fixed average duration. During development, I learned that building the system around real-time events from the beginning would have reduced later refactoring when transitioning from a polling-based design to Socket.IO.