MediCore Scheduler
How it works
MediCore Scheduler is the booking board for a multi-doctor clinic. The front desk sees every doctor's day on one screen, drags waiting patients into free slots, and exports reports at the end of the day. It keeps working when the internet drops.
Our Approach
We built it around how reception actually works: a patient pool on one side and the doctors' schedules on the other. Free slots come from each doctor's real shift and the clinic's hours, including the lunch break, Sunday mornings and holiday closures, so staff can only book times that really exist.
Offline-First
Every change is saved on the device first and synced to the server in the background. If a login lapses or a write is rejected, the queue is kept and the app re-pulls the server's state, so nothing is lost and no phantom bookings are left behind.
No Double Bookings
The overlap rule is enforced twice: in the app before a booking is written, and again by a database constraint. No-shows and cancellations free their slot automatically.
Secure Accounts
Staff sign in with hashed passwords and signed session tokens. Repeated failed logins trigger a lockout, sessions can be revoked, and sensitive actions are written to an audit log.
Reports and Install
Bookings export to Excel, with a guard against spreadsheet formula injection. The app installs as a PWA on the reception PC or a phone, with its own icon and an update prompt.
Tested Where It Matters
A Vitest suite covers the logic where a silent bug would hurt most: slot maths, the overlap rule, clinic hours and input validators. A full audit pass fixed data-loss and availability issues before launch.
Built with: Next.js, React, TypeScript, Supabase, Dexie (IndexedDB), Tailwind CSS, shadcn/ui, Vitest, Vercel.






