Python Projects

Doctor Appointment Management System Using Python and Django

Doctor Appointment Management System Using Python

Doctor Appointment Management System Using Python

The Doctor Appointment Management System Using Python and Django is a complete clinic and appointment management application designed to simplify the way patients, doctors, and administrators manage healthcare appointments. The system provides separate experiences for patients, doctors, and administrators, along with appointment scheduling, doctor availability, medical records, payments, notifications, reporting, and online video consultations.

The project is built using Django with server-rendered templates, CSS, and JavaScript. It also integrates Zoom Server-to-Server OAuth for online doctor consultations.

Complete Advance AI Topics: Click Here
Real Time Projects on YouTube:- DecodeIT

Project Overview

Project NameDoctor Appointment Management System
Language/s UsedPython, HTML, CSS, JavaScript
FrameworkDjango 5.2
DatabaseSQLite
Video CallingZoom Server-to-Server OAuth
Project TypeWeb-Based Healthcare Management System
DeveloperUPDATEGADH

Available Features

Patient Management

  • Email-based registration and login
  • Email OTP verification and password reset
  • Profile and password management
  • Doctor search and specialization filtering
  • Appointment booking
  • Next-of-kin appointment booking
  • Appointment cancellation and rescheduling
  • Medical history and care information
  • Online video consultation
  • Payment and invoice management
  • Notifications and reminders

Doctor Management

  • Doctor profile and specialization
  • Consultation fee management
  • Weekly availability schedules
  • Time-off management
  • Appointment approval and rejection
  • Patient information management
  • Medical notes and private notes
  • Prescription management
  • Zoom video consultation
  • Doctor dashboard and reports

Administrator Management

  • User and role management
  • Doctor registration approval
  • Patient and doctor management
  • Department and specialization management
  • Doctor schedule management
  • Clinic-wide appointment management
  • Payment and refund management
  • Reports, charts and CSV exports
  • Activity log and administration

The project also provides in-app notifications, optional email notifications, appointment reminders, downloadable PDF receipts, demo payment handling, dashboards, calendar views and reporting functionality.

Appointment Workflow

A patient selects an approved doctor, checks available slots and submits an appointment request. The appointment initially remains pending. The doctor or administrator can approve, reject, complete, cancel or mark an appointment as a no-show according to the system rules.

For an online appointment, approval triggers the Zoom meeting creation process. The Zoom meeting ID and patient/doctor meeting URLs are stored with the appointment. Patients receive the joining option while the doctor receives the host/start option.

Zoom Video Consultation

One of the major features of this project is online consultation through Zoom. The Django backend communicates with Zoom using a Server-to-Server OAuth application. This allows the application to create and update scheduled Zoom meetings without requiring the doctor or patient to authenticate with Zoom every time.

Zoom’s official documentation states that a Server-to-Server OAuth application provides an Account ID, Client ID and Client Secret, and the application must be activated before it can generate access tokens.

How to Download

The complete package is available so you can run, study, and submit it with confidence. It includes:

  • Full Source Code
  • Project Report
  • Synopsis
  • PPT Presentation

Screenshot

Doctor Appointment Management System Using Python and Django
Doctor Appointment Management System Using Python and Django
Doctor Appointment Management System Using Python and Django
Doctor Appointment Management System Using Python and Django
Doctor Appointment Management System Using Python and Django
Doctor Appointment Management System Using Python and Django
Doctor Appointment Management System Using Python and Django
Doctor Appointment Management System Using Python and Django
Doctor Appointment Management System Using Python and Django
Doctor Appointment Management System Using Python and Django
Doctor Appointment Management System Using Python and Django
Doctor Appointment Management System Using Python and Django
Doctor Appointment Management System Using Python and Django

How to Get Zoom Account ID, Client ID and Client Secret

Follow these steps to configure Zoom for this Django project:

  1. Sign in to your Zoom account and open the Zoom App Marketplace.
  2. Open Develop and go to Created Apps.
  3. Click the + button and select Build an App.
  4. Select Server-to-Server OAuth and create the application.
  5. Open the App Credentials section.
  6. Copy the Account ID, Client ID and Client Secret.
  7. Open Scopes and add the meeting permissions required by the application.
  8. Complete the required app information and activate the application.

Zoom specifically requires the Server-to-Server OAuth app to be activated before an access token can be generated.

Required Zoom Meeting Permission

For creating meetings, Zoom currently provides the meeting:write scope. For updating meetings, the corresponding meeting update scope is required. The exact scope available to you can depend on your Zoom account permissions.

Configure Zoom in the Django Project

Create a .env file in the same directory as manage.py and add:

ZOOM_ACCOUNT_ID=your_account_id
ZOOM_CLIENT_ID=your_client_id
ZOOM_CLIENT_SECRET=your_client_secret
ZOOM_USER_ID=me

Do not publish your Client Secret or commit the .env file to a public repository. The project loads these values through environment variables.

The project uses the Server-to-Server OAuth account_credentials flow to request an access token and then uses that token to communicate with the Zoom Meetings API. Zoom states that these access tokens expire after one hour, after which the application can request a new token

Technology Stack

  • Backend: Python and Django 5.2
  • Frontend: Django Templates, CSS and Vanilla JavaScript
  • Database: SQLite
  • Authentication: Django authentication with custom email-based user model and OTP verification
  • Video Calling: Zoom Server-to-Server OAuth and Zoom Meetings API
  • PDF: ReportLab
  • Images: Pillow
  • Frontend Libraries: Chart.js and Bootstrap Icons

Node.js and npm are not required because the frontend does not use a separate Node.js build system.

Software and Tools Required

  • Python 3.10–3.14
  • Django 5.2
  • Visual Studio Code
  • SQLite
  • Modern web browser
  • Internet connection
  • Zoom account for video appointments

No separate database server is required for the default SQLite configuration.

Installation Guide

Step 1: Open the Project

Extract the project and open the folder containing manage.py in Visual Studio Code.

cd C:\path\to\project
code .

Step 2: Create Virtual Environment

python -m venv .venv
.\.venv\Scripts\Activate.ps1

Step 3: Install Requirements

python -m pip install --upgrade pip
python -m pip install -r requirements.txt

Step 4: Configure Environment Variables

Create .env and configure Django, email and Zoom settings. For Zoom appointments, enter the Account ID, Client ID and Client Secret obtained from your Zoom Server-to-Server OAuth app.

Step 5: Run Database Migration

python manage.py migrate

Step 6: Create Admin Account

python manage.py createsuperuser

Step 7: Check the Project

python manage.py check
python manage.py test

Step 8: Start the Server

python manage.py runserver

Now open http://127.0.0.1:8000/ in your browser.

Project Rules

The system has three main roles: Admin, Doctor and Patient. Patients can manage their own appointments and information, doctors manage their own schedules and assigned consultations, and administrators manage clinic-wide records and users.

Patients cannot approve appointments or access another patient’s information. Doctors cannot access another doctor’s appointments or administrator-only management areas. Appointment availability is controlled by schedules, appointment duration, time-off records and existing appointments.

Project Benefits

  • Centralized doctor and patient management
  • Online and in-person appointment support
  • Automated Zoom meeting creation
  • Role-based access control
  • Medical records and prescriptions
  • Payment and invoice management
  • Notifications and reminders
  • Reports and dashboard analytics

Conclusion

The Doctor Appointment Management System using Python and Django provides a complete foundation for managing modern clinic operations. It combines appointment scheduling, doctor availability, patient care, billing, notifications and online Zoom consultations into one application. The Zoom Server-to-Server OAuth integration makes it possible to automatically create online consultation meetings when eligible appointments are approved.

Doctor Appointment Management System Doctor Appointment Management System doctor appointment management system project doctor appointment management system github doctor appointment management system project report doctor appointment management system er diagram doctor appointment management system website doctor appointment management system source code medical appointment management system doctor appointment scheduling system mini project doctor appointment scheduling system

Source Code Available

Interested in This Project?

Get the complete source code for this project at a very affordable price — perfect for your portfolio, college submission, or learning. Message us on WhatsApp and we'll get back to you instantly!

Full source code included Step-by-step setup guide Instant delivery on WhatsApp Instant reply on WhatsApp
Chat on WhatsApp

We usually reply within a few minutes

Leave a Reply

Your email address will not be published. Required fields are marked *

Chat with us