A full-stack clinic management system built for a small private clinic digitizing patient records, appointment scheduling, and consultation billing in a single Django + Next.js platform. The system gives doctors a unified view of every patient's history at the point of care, and handles consultation payments via Stripe.
Small clinics rely on paper registers and receptionist memory a patient's past diagnoses live in a physical file, appointment conflicts happen verbally, and billing is done manually at checkout. The system had to be usable by clinic staff with minimal technical training and fast enough to not slow down a busy morning consultation queue.
- Designed a Django REST backend with patient records, appointment slots, and consultation history linked per patient.
- Built a doctor-facing dashboard showing upcoming appointments with full patient history inline no tab-switching.
- Implemented an appointment conflict detection engine preventing double-bookings across doctors and rooms.
- Integrated Stripe for consultation billing with automatic receipt generation and payment status tracking.
- Deployed with a role-based access model doctors, receptionists, and admin each see only what they need.
The Paper Register Problem
Walking into a small clinic in Kathmandu, the first thing you see behind the reception desk is a thick paper register. Every patient visit date, name, age, complaint, doctor assigned written in ink. When a patient comes back six months later with a related issue, finding their history means flipping through pages. This system was designed to make that search a query, not a hunt.
The platform manages appointments, patient history, and billing for a full clinic operation.
Patient records with full visit history and the appointment scheduling interface for reception staff.
Doctor-Facing Dashboard
The most critical design decision was the doctor view. Before seeing a patient, a doctor needs: current complaint, past diagnoses, medications, and allergies all without navigating away from the appointment card. The dashboard loads the patient's condensed history inline when an appointment is opened, keeping the doctor in a single context for the entire consultation.
Stripe Billing Integration
Consultation billing integrates Stripe for card payments with automatic receipt generation. The billing screen is surfaced to reception at appointment checkout the system calculates the consultation fee based on doctor type and appointment duration, applies any insurance adjustments, and creates a payment intent. Receipts are generated as PDFs and emailed automatically.
The system replaced a paper register at a Kathmandu clinic, reducing appointment booking time and eliminating billing errors. Patient history lookup previously a physical file search became a two-second query.