Inspiration
While brainstorming hackathon ideas, I recalled a painful personal experience: after a minor accident, a loved one and I waited over two hours in a small clinic’s crowded waiting room, never knowing when we’d be called. Research shows excessive wait times disrupt clinic workflow and drive patient dissatisfaction. Mismanagement and inefficiency can also hurt compliance and revenue. That frustration sparked Clinic Que—a simple SMS/WhatsApp–based queuing system that delivers realistic wait-time estimates and reduces patient anxiety.
What it does
- Join via SMS/WhatsApp
Patients text JOIN to receive a short ticket code (e.g., Q7), their place in line, and an estimated wait time. STATUS checks progress; LEAVE exits the queue.
- Kiosk option
Staff can register phone-less patients through a web kiosk.
- Admin dashboard
A browser board shows tickets in waiting → next → in_room → done / no_show states. One click advances a ticket and sends a “you’re next” alert.
- Privacy-first
Only a ticket code and phone number (plus optional note) are stored.
- Rolling ETA
A rolling average of service times updates each patient’s wait in minutes.
- Extensible & configurable
SQLite in dev, PostgreSQL in prod; events flow through Redis so background workers can message without blocking the API. All creds live in environment variables.
How we built it
| Layer |
Tech & Approach |
| API & logic |
Python · FastAPI (async) |
| Data |
SQLModel (SQLite → PostgreSQL via DATABASE_URL) |
| Messaging |
Twilio / Vonage webhooks (/webhooks/sms/…, /webhooks/whatsapp) |
| Real-time |
Redis event bus + WebSocket pusher |
| Dashboard |
Minimal React (static/admin.js, CDN React) |
| Config |
.env for DB, SMS creds, Redis URL, dashboard passcode |
Challenges we ran into
- SMS/WhatsApp integration – Webhook config, regional phone-number quirks, and ngrok tunnelling.
- Accurate ETA calculation – Rolling averages skew when visit durations vary widely.
- Minimal front-end – Embedding React via CDN limited styling but met the deadline.
- Scaling infra – Containerising PostgreSQL & Redis and ensuring reliable event delivery.
Accomplishments that we’re proud of
- Functional virtual queue built in a single weekend.
- Privacy-first design with minimal PII.
- One-click admin workflow that auto-alerts the next patient.
- Cloud-ready architecture—scales from SQLite to PostgreSQL + distributed workers.
What we learned
- User-centric design matters—real pain points shape features.
- FastAPI + SQLModel enable rapid, type-safe APIs.
- Messaging integration is finicky—anticipate delays & delivery errors.
- Real-time systems demand clean decoupling (Redis queues) and robust logging.
What's next for Clinic Que
- Full React dashboard with drag-and-drop ticket management & analytics.
- Appointment scheduling integrated with the walk-in queue.
- Multilingual support (Urdu & other regional languages).
- Robust SMS worker with richer templates and multi-provider fallback.
- EHR integration to sync queue status with patient records.
Log in or sign up for Devpost to join the conversation.