# premchand338/re-move---healthcare-appointment-booking architecture

> Architecture diagram of the GitHub repository premchand338/re-move---healthcare-appointment-booking, 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/premchand338/re-move---healthcare-appointment-booking
- Repository: https://github.com/premchand338/re-move---healthcare-appointment-booking

## Overview

This repository implements a physiotherapy clinic website and API. Visitors explore clinical information, submit assessments, find therapists, and book appointments; patients and administrators can also authenticate, while administrators manage therapist records. The frontend route shell and server mounts are visible in sampled source. Several UI and backend modules are represented only by their paths, so links between those unsampled modules are omitted where their calls cannot be verified.

Main entry points: [`backend/src/server.ts`](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/server.ts) (Express API server), [`src/App.tsx`](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/App.tsx) (Routes and landing), [`backend/src/db.ts`](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/db.ts) (Database connection), [`backend/src/middleware/auth.ts`](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/middleware/auth.ts) (Role authorization)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Clinic website"]
  node_app["Routes and landing<br/>[App.tsx]"]
  node_clinical["Clinical content"]
  node_assessment["Symptom assessment"]
  node_specialists["Therapist discovery"]
  node_login["Account access<br/>[LoginPage.tsx]"]
  node_register["Patient registration<br/>[RegisterPage.tsx]"]
  node_admin["Admin dashboard<br/>[AdminDashboard.tsx]"]
  node_therapist_manage["Therapist management"]
  node_client_therapists["Therapist API service"]
  node_client_appointments["Appointment API service"]
  node_http["HTTP client<br/>[api.ts]"]
end

subgraph group_api["Clinic API"]
  node_backend["Express API server<br/>[server.ts]"]
  node_auth_routes["Authentication routes<br/>[authRoutes.ts]"]
  node_assessment_routes["Assessment and matching"]
  node_appointment_routes["Appointment booking"]
  node_therapist_routes["Therapist records<br/>[therapistRoutes.ts]"]
  node_patient_routes["Patient records<br/>[patientRoutes.ts]"]
  node_service_routes["Clinic services<br/>[serviceRoutes.ts]"]
  node_inquiry_routes["Contact inquiries<br/>[inquiryRoutes.ts]"]
  node_auth_middleware["Role authorization<br/>[auth.ts]"]
end

subgraph group_data["Persistence and access"]
  node_db_access["Database connection<br/>[db.ts]"]
  node_database[("Clinic database")]
end

node_visitor(("Visitor or user"))

node_visitor -->|"opens"| node_app
node_app -->|"renders"| node_clinical
node_app -->|"opens"| node_assessment
node_app -->|"renders"| node_specialists
node_app -->|"routes to"| node_login
node_app -->|"routes to"| node_register
node_app -->|"routes to"| node_admin
node_admin -->|"renders"| node_therapist_manage
node_client_therapists -->|"requests through"| node_http
node_client_appointments -->|"requests through"| node_http
node_http -->|"sends HTTP"| node_backend
node_backend -->|"mounts"| node_auth_routes
node_backend -->|"mounts"| node_assessment_routes
node_backend -->|"mounts"| node_appointment_routes
node_backend -->|"mounts"| node_therapist_routes
node_backend -->|"mounts"| node_patient_routes
node_backend -->|"mounts"| node_service_routes
node_backend -->|"mounts"| node_inquiry_routes
node_assessment_routes -->|"guards routes"| node_auth_middleware
node_appointment_routes -->|"guards routes"| node_auth_middleware
node_therapist_routes -->|"guards routes"| node_auth_middleware
node_patient_routes -->|"guards routes"| node_auth_middleware
node_assessment_routes -->|"queries"| node_db_access
node_appointment_routes -->|"queries"| node_db_access
node_therapist_routes -->|"queries"| node_db_access
node_patient_routes -->|"queries"| node_db_access
node_service_routes -->|"queries"| node_db_access
node_auth_routes -->|"queries"| node_db_access
node_inquiry_routes -->|"queries"| node_db_access
node_db_access -->|"connects to"| node_database

click node_app "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/App.tsx"
click node_clinical "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/components/ClinicalModalities.tsx"
click node_assessment "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/components/AssessmentModal.tsx"
click node_specialists "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/components/TherapistListPage.tsx"
click node_login "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/pages/LoginPage.tsx"
click node_register "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/pages/RegisterPage.tsx"
click node_admin "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/pages/AdminDashboard.tsx"
click node_therapist_manage "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/components/TherapistListPage.tsx"
click node_client_therapists "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/services/therapistService.ts"
click node_client_appointments "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/services/appointmentService.ts"
click node_http "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/lib/api.ts"
click node_backend "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/server.ts"
click node_auth_routes "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/routes/authRoutes.ts"
click node_assessment_routes "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/routes/assessmentRoutes.ts"
click node_appointment_routes "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/routes/appointmentRoutes.ts"
click node_therapist_routes "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/routes/therapistRoutes.ts"
click node_patient_routes "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/routes/patientRoutes.ts"
click node_service_routes "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/routes/serviceRoutes.ts"
click node_inquiry_routes "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/routes/inquiryRoutes.ts"
click node_auth_middleware "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/middleware/auth.ts"
click node_db_access "https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/db.ts"

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_app,node_clinical,node_assessment,node_specialists,node_login,node_register,node_admin,node_therapist_manage,node_client_therapists,node_client_appointments,node_http,node_visitor toneBlue
class node_backend,node_auth_routes,node_assessment_routes,node_appointment_routes,node_therapist_routes,node_patient_routes,node_service_routes,node_inquiry_routes,node_auth_middleware toneAmber
class node_db_access,node_database toneMint
```

## Components

### Clinic website

- [Routes and landing](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/App.tsx): `src/App.tsx`
- [Clinical content](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/components/ClinicalModalities.tsx): `src/components/ClinicalModalities.tsx`
- [Symptom assessment](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/components/AssessmentModal.tsx): `src/components/AssessmentModal.tsx`
- [Therapist discovery](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/components/TherapistListPage.tsx): `src/components/TherapistListPage.tsx`
- [Account access](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/pages/LoginPage.tsx): `src/pages/LoginPage.tsx`
- [Patient registration](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/pages/RegisterPage.tsx): `src/pages/RegisterPage.tsx`
- [Admin dashboard](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/pages/AdminDashboard.tsx): `src/pages/AdminDashboard.tsx`
- [Therapist management](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/components/TherapistListPage.tsx): `src/components/TherapistListPage.tsx`
- [Therapist API service](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/services/therapistService.ts): `src/services/therapistService.ts`
- [Appointment API service](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/services/appointmentService.ts): `src/services/appointmentService.ts`
- [HTTP client](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/src/lib/api.ts): `src/lib/api.ts`

### Clinic API

- [Express API server](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/server.ts): `backend/src/server.ts`
- [Authentication routes](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/routes/authRoutes.ts): `backend/src/routes/authRoutes.ts`
- [Assessment and matching](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/routes/assessmentRoutes.ts): `backend/src/routes/assessmentRoutes.ts`
- [Appointment booking](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/routes/appointmentRoutes.ts): `backend/src/routes/appointmentRoutes.ts`
- [Therapist records](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/routes/therapistRoutes.ts): `backend/src/routes/therapistRoutes.ts`
- [Patient records](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/routes/patientRoutes.ts): `backend/src/routes/patientRoutes.ts`
- [Clinic services](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/routes/serviceRoutes.ts): `backend/src/routes/serviceRoutes.ts`
- [Contact inquiries](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/routes/inquiryRoutes.ts): `backend/src/routes/inquiryRoutes.ts`
- [Role authorization](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/middleware/auth.ts): `backend/src/middleware/auth.ts`

### Persistence and access

- [Database connection](https://github.com/premchand338/re-move---healthcare-appointment-booking/blob/main/backend/src/db.ts): `backend/src/db.ts`
- **Clinic database**

### Other components

- **Visitor or user**

## Connections

- Visitor or user → Routes and landing: opens
- Routes and landing → Clinical content: renders
- Routes and landing → Symptom assessment: opens
- Routes and landing → Therapist discovery: renders
- Routes and landing → Account access: routes to
- Routes and landing → Patient registration: routes to
- Routes and landing → Admin dashboard: routes to
- Admin dashboard → Therapist management: renders
- Therapist API service → HTTP client: requests through
- Appointment API service → HTTP client: requests through
- HTTP client → Express API server: sends HTTP
- Express API server → Authentication routes: mounts
- Express API server → Assessment and matching: mounts
- Express API server → Appointment booking: mounts
- Express API server → Therapist records: mounts
- Express API server → Patient records: mounts
- Express API server → Clinic services: mounts
- Express API server → Contact inquiries: mounts
- Assessment and matching → Role authorization: guards routes
- Appointment booking → Role authorization: guards routes
- Therapist records → Role authorization: guards routes
- Patient records → Role authorization: guards routes
- Assessment and matching → Database connection: queries
- Appointment booking → Database connection: queries
- Therapist records → Database connection: queries
- Patient records → Database connection: queries
- Clinic services → Database connection: queries
- Authentication routes → Database connection: queries
- Contact inquiries → Database connection: queries
- Database connection → Clinic database: connects to
