# rushabhw13/edoc-doctor-appointment-system architecture

> Architecture diagram of the GitHub repository rushabhw13/edoc-doctor-appointment-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rushabhw13/edoc-doctor-appointment-system
- Repository: https://github.com/rushabhw13/edoc-doctor-appointment-system

## Overview

Edoc is a PHP/MySQL e-channeling application for patients, doctors, and administrators. Its central workflow is patient signup or login, doctor discovery and schedule review, appointment request, then doctor review of bookings; administrators maintain doctors and session availability. The tree and README establish the broader role capabilities, while sampled code confirms login routing, patient registration, and session writes. Most feature-page internals were not sampled, so uncertain page-to-page calls are omitted.

Main entry points: [`patient/index.php`](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/patient/index.php) (Patient Dashboard), [`connection.php`](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/connection.php) (DB Connection), [`login.php`](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/login.php) (Login), [`doctor/index.php`](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/doctor/index.php) (Doctor Dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Access and Accounts"]
  node_login["Login<br/>[login.php]"]
  node_signup["Personal Signup<br/>[signup.php]"]
  node_create["Account Creation<br/>[create-account.php]"]
  node_logout["Logout<br/>[logout.php]"]
end

subgraph group_patient["Patient Booking"]
  node_patient_home["Patient Dashboard<br/>[index.php]"]
  node_doctor_search["Doctor Directory<br/>[doctors.php]"]
  node_booking["Appointment Booking<br/>[booking.php]"]
  node_booking_done["Booking Completion"]
  node_patient_appointments["Patient Bookings<br/>[appointment.php]"]
  node_patient_schedule["Session Browse<br/>[schedule.php]"]
  node_patient_settings["Patient Settings<br/>[settings.php]"]
end

subgraph group_staff["Staff Operations"]
  node_doctor_home["Doctor Dashboard<br/>[index.php]"]
  node_doctor_appointments["Doctor Appointments<br/>[appointment.php]"]
  node_doctor_schedule["Doctor Schedule<br/>[schedule.php]"]
  node_doctor_settings["Doctor Settings<br/>[settings.php]"]
  node_admin_home["Admin Dashboard<br/>[index.php]"]
  node_admin_doctors["Doctor Management<br/>[doctors.php]"]
  node_admin_add_doctor["Add Doctor<br/>[add-new.php]"]
  node_admin_schedule["Session Management<br/>[schedule.php]"]
  node_admin_add_session["Add Session<br/>[add-session.php]"]
end

subgraph group_records["Clinical Data"]
  node_connection["DB Connection<br/>[connection.php]"]
  node_database[("Application Database")]
end

node_visitor(("Patient / Visitor"))

node_visitor -->|"submits credentials"| node_login
node_visitor -->|"enters details"| node_signup
node_signup -->|"continues registration"| node_create
node_create -->|"redirects after signup"| node_patient_home
node_login -->|"routes patient"| node_patient_home
node_login -->|"routes doctor"| node_doctor_home
node_login -->|"routes admin"| node_admin_home
node_patient_home -->|"opens directory"| node_doctor_search
node_doctor_search -->|"starts booking"| node_booking
node_booking -->|"completes request"| node_booking_done
node_patient_home -->|"browses sessions"| node_patient_schedule
node_patient_home -->|"views bookings"| node_patient_appointments
node_patient_home -->|"manages account"| node_patient_settings
node_doctor_home -->|"opens appointments"| node_doctor_appointments
node_doctor_home -->|"views schedule"| node_doctor_schedule
node_doctor_home -->|"manages account"| node_doctor_settings
node_admin_home -->|"manages doctors"| node_admin_doctors
node_admin_doctors -->|"adds doctor"| node_admin_add_doctor
node_admin_home -->|"manages sessions"| node_admin_schedule
node_admin_schedule -->|"adds session"| node_admin_add_session
node_login -->|"queries accounts"| node_connection
node_create -->|"checks and stores account"| node_connection
node_admin_add_session -->|"inserts session"| node_connection
node_doctor_schedule -->|"uses database"| node_connection
node_patient_home -->|"queries dashboard data"| node_connection
node_admin_home -->|"queries dashboard data"| node_connection
node_connection -->|"connects to"| node_database
node_visitor -->|"ends session"| node_logout

click node_login "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/login.php"
click node_signup "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/signup.php"
click node_create "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/create-account.php"
click node_logout "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/logout.php"
click node_patient_home "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/patient/index.php"
click node_doctor_search "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/patient/doctors.php"
click node_booking "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/patient/booking.php"
click node_booking_done "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/patient/booking-complete.php"
click node_patient_appointments "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/patient/appointment.php"
click node_patient_schedule "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/patient/schedule.php"
click node_patient_settings "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/patient/settings.php"
click node_doctor_home "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/doctor/index.php"
click node_doctor_appointments "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/doctor/appointment.php"
click node_doctor_schedule "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/doctor/schedule.php"
click node_doctor_settings "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/doctor/settings.php"
click node_admin_home "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/admin/index.php"
click node_admin_doctors "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/admin/doctors.php"
click node_admin_add_doctor "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/admin/add-new.php"
click node_admin_schedule "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/admin/schedule.php"
click node_admin_add_session "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/admin/add-session.php"
click node_connection "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/connection.php"
click node_database "https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/SQL_Database_edoc.sql"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_login,node_signup,node_create,node_logout toneBlue
class node_patient_home,node_doctor_search,node_booking,node_booking_done,node_patient_appointments,node_patient_schedule,node_patient_settings toneAmber
class node_doctor_home,node_doctor_appointments,node_doctor_schedule,node_doctor_settings,node_admin_home,node_admin_doctors,node_admin_add_doctor,node_admin_schedule,node_admin_add_session toneMint
class node_connection,node_database toneRose
class node_visitor toneIndigo
```

## Components

### Access and Accounts

- [Login](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/login.php): `login.php`
- [Personal Signup](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/signup.php): `signup.php`
- [Account Creation](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/create-account.php): `create-account.php`
- [Logout](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/logout.php): `logout.php`

### Patient Booking

- [Patient Dashboard](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/patient/index.php): `patient/index.php`
- [Doctor Directory](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/patient/doctors.php): `patient/doctors.php`
- [Appointment Booking](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/patient/booking.php): `patient/booking.php`
- [Booking Completion](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/patient/booking-complete.php): `patient/booking-complete.php`
- [Patient Bookings](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/patient/appointment.php): `patient/appointment.php`
- [Session Browse](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/patient/schedule.php): `patient/schedule.php`
- [Patient Settings](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/patient/settings.php): `patient/settings.php`

### Staff Operations

- [Doctor Dashboard](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/doctor/index.php): `doctor/index.php`
- [Doctor Appointments](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/doctor/appointment.php): `doctor/appointment.php`
- [Doctor Schedule](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/doctor/schedule.php): `doctor/schedule.php`
- [Doctor Settings](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/doctor/settings.php): `doctor/settings.php`
- [Admin Dashboard](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/admin/index.php): `admin/index.php`
- [Doctor Management](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/admin/doctors.php): `admin/doctors.php`
- [Add Doctor](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/admin/add-new.php): `admin/add-new.php`
- [Session Management](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/admin/schedule.php): `admin/schedule.php`
- [Add Session](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/admin/add-session.php): `admin/add-session.php`

### Clinical Data

- [DB Connection](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/connection.php): `connection.php`
- [Application Database](https://github.com/rushabhw13/edoc-doctor-appointment-system/blob/main/SQL_Database_edoc.sql): `SQL_Database_edoc.sql`

### Other components

- **Patient / Visitor**

## Connections

- Patient / Visitor → Login: submits credentials
- Patient / Visitor → Personal Signup: enters details
- Personal Signup → Account Creation: continues registration
- Account Creation → Patient Dashboard: redirects after signup
- Login → Patient Dashboard: routes patient
- Login → Doctor Dashboard: routes doctor
- Login → Admin Dashboard: routes admin
- Patient Dashboard → Doctor Directory: opens directory
- Doctor Directory → Appointment Booking: starts booking
- Appointment Booking → Booking Completion: completes request
- Patient Dashboard → Session Browse: browses sessions
- Patient Dashboard → Patient Bookings: views bookings
- Patient Dashboard → Patient Settings: manages account
- Doctor Dashboard → Doctor Appointments: opens appointments
- Doctor Dashboard → Doctor Schedule: views schedule
- Doctor Dashboard → Doctor Settings: manages account
- Admin Dashboard → Doctor Management: manages doctors
- Doctor Management → Add Doctor: adds doctor
- Admin Dashboard → Session Management: manages sessions
- Session Management → Add Session: adds session
- Login → DB Connection: queries accounts
- Account Creation → DB Connection: checks and stores account
- Add Session → DB Connection: inserts session
- Doctor Schedule → DB Connection: uses database
- Patient Dashboard → DB Connection: queries dashboard data
- Admin Dashboard → DB Connection: queries dashboard data
- DB Connection → Application Database: connects to
- Patient / Visitor → Logout: ends session
