03

Clinic Management System

Full-stack clinic booking system for admins, patients, and guests.

Role
Full-stack, end to end
Stack
ASP.NET Core · C# · SQL Server · Entity Framework Core · Swagger · xUnit · Next.js · React · TypeScript · Tailwind CSS
Links
Source on GitHub ↗
48 endpoints
Across seven controllers, documented and callable through Swagger UI
140 xUnit tests
Integration tests against a real seeded database, with coverage reports
Four access roles
Admin, Patient, Public and Guest, on JWT over BCrypt-hashed passwords

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.

ClinicAPI landing page with book appointment, find a doctor, log in, and register options

What I worked on

01

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.

02

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.

03

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.

04

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.

05

Admin management

An admin side to manage clinics, doctors, specialities, patients, appointment categories and every appointment, including rescheduling, cancelling and marking visits completed.

Back to all work

03 / Contact

Want to talk about any of this?

I'm in Oslo. Quickest route is email: I answer within a day.

martin.neset0@gmail.com
Based in
Oslo, Norway