← All projects

Clinic management / Case study

Homeopathic Management API

Role-aware Django API for appointments, clinical records, medicine stock, and billing.

CATEGORYClinic management
DATEApril 2025
View source ↗

Overview

A Django REST API that coordinates patients, doctors, receptionists, appointments, medical histories, prescriptions, medicine inventory, and appointment billing.

01 / Context

The problem

A clinic needs to coordinate doctors, patients, receptionists, appointments, clinical records, medicine stock, and bills while keeping each action within the correct role boundary.

My role

I implemented role-based registration and permissions, doctor availability and appointment workflows, patient symptoms and family medical history, prescriptions and medicine inventory, and appointment billing with calculated bill items.

02 / Engineering

Technical decisions

Django REST Framework and JWT authentication expose the clinic workflow through a documented API. Role-specific permission classes control doctor, patient, and receptionist actions.

Appointment validation checks doctor availability and existing bookings, while explicit pending, confirmed, completed, and cancelled states represent the visit lifecycle.

Appointment-linked medical history and prescriptions keep clinical context connected. Prescription duration determines medicine units, stock pricing supplies the current cost, and bill items are created together for the appointment.

03 / Delivery

What the project delivers

The repository exposes APIs for account registration, doctor availability, appointments, symptoms and family history, medical records, prescriptions, medicine categories and suppliers, stock pricing, and appointment billing.

Key features

Django REST Framework and JWT authentication
Doctor availability and appointment status workflows
Symptoms, family history, and prescription records
Medicine suppliers, stock, discounts, and billing

Homeopathic Management generated OpenAPI contract

Interested in work like this?

Let’s start a conversation ↗