Inspiration

Hospital outpatient departments (OPDs) and private clinics frequently struggle with manual record keeping, chaotic queue lines, and accidental double-booking. Inspired by modern table reservation workflows, we wanted to build a dependable, frictionless reservation platform specifically for outpatient healthcare that lets patients secure exact consultation windows and provides clinic administration with clear daily patient queues.

What it does

  • Real-Time Slot Locking: Patients select a doctor and date to view live available 30-minute intervals. Taken slots are automatically locked out and disabled to prevent scheduling conflicts.
  • Role-Based Access Control: Dual dashboards separate patient activities (booking appointments, viewing schedules, cancelling) from doctor management (viewing assigned patient lists, visit reasons, contact details).
  • Automated QR-Verified Consultation Slips: Once an appointment is secured, the system automatically compiles an official PDF receipt complete with the patient's token ID (#MS-XXXX), room assignment, consultation fee, and a scannable QR verification code.

How we built it

  • Backend: Python (Flask) with secure session handling.
  • Database: MySQL relational database enforcing referential integrity with foreign keys and multi-column unique constraints.
  • Frontend: Responsive HTML5, CSS3, and JavaScript using the Fetch API for asynchronous slot checking.
  • Document Engine: ReportLab and QRCode libraries for on-the-fly PDF generation and verification badges.

Challenges we ran into

  • Handling simultaneous slot availability without race conditions: solved by introducing database-level unique constraints across doctor ID, date, time slot, and status.
  • Dynamically building formatted PDF consultation slips in-memory via ReportLab without blocking Flask server worker threads.

What we learned

  • Designing robust relational database schemas that enforce business rules directly at the data layer.
  • Integrating asynchronous client-side API requests with Flask backend route controllers to update UI elements without full page reloads.

What's next for MediSlot

  • Integrating PayPal payment sandbox checkout so patients can settle consultation fees prior to clinic arrival.
  • Automated SMS and WhatsApp reminder notifications dispatched 1 hour before scheduled consultation slots.
Share this project:

Updates

Submission history