03
Clinic Management System
Full-stack clinic booking system for admins, patients, and guests.
- Full-stack, end to end
- ASP.NET Core · C# · SQL Server · Entity Framework Core · Swagger · xUnit · Next.js · React · TypeScript · Tailwind CSS
- 48 endpoints
- 140 xUnit tests
- Four access roles
About
A full-stack clinic booking system where admins manage clinics, doctors, specialities and appointment categories, while patients and walk-in guests book, reschedule and cancel their appointments.
Why it exists
To run a clinic's whole booking flow from one system: staff manage doctors, specialities and appointments, patients book and handle their own visits online, and walk-in guests can still be booked in without an account, all while keeping an accurate history of every appointment.
What I worked on
Secure REST API
48 endpoints across seven controllers, with JWT authentication over BCrypt-hashed passwords and role-based access for Admin, Patient, Public and Guest, fully documented and callable through Swagger UI.
Two-tier patient model
Full registered accounts alongside lightweight guest bookings, so returning patients get a profile they manage themselves while walk-ins can be created and booked in a single call.
Booking with conflict detection
Patients search doctors and book, reschedule or cancel appointments. The API checks the requested slot against the patient's and the doctor's existing appointments and rejects any overlap, which the booking form turns into a clear 'pick a different time' message.
History that survives change
Clinics, doctors and patients are soft-deleted so their past appointments stay meaningful, while lookup tables are hard-deleted behind a referential check that refuses to remove anything still in use.
Admin management
An admin side to manage clinics, doctors, specialities, patients, appointment categories and every appointment, including rescheduling, cancelling and marking visits completed.
Want to talk about any of this?
I'm in Oslo. Quickest route is email: I answer within a day.
martin.neset0@gmail.com- Oslo, Norway