MediCore Scheduler

Category: Web App · Booking System
Client: Private clinic
Duration: 1 week

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.

More work