# shaikrasheedali/final-sreemantha architecture

> Architecture diagram of the GitHub repository shaikrasheedali/final-sreemantha, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/shaikrasheedali/final-sreemantha
- Repository: https://github.com/shaikrasheedali/final-sreemantha

## Overview

Sreemantha Hospital Platform combines a public hospital-information and appointment website with a staff CMS. Visitors browse clinical and facility content or submit appointment/enquiry forms; authorized staff manage those submissions, content, media, settings and users through the admin UI. The backend routes API requests to domain controllers backed by MySQL, while the server also serves uploaded media and the SPA. The graph preserves README-documented capabilities, but unsampled route/controller wiring is shown only where the supplied index or excerpts support it.

Main entry points: [`frontend/src/App.tsx`](https://github.com/shaikrasheedali/final-sreemantha/blob/main/frontend/src/App.tsx) (React application), [`backend/src/config/db.js`](https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/config/db.js) (MySQL database), [`frontend/src/utils/api.ts`](https://github.com/shaikrasheedali/final-sreemantha/blob/main/frontend/src/utils/api.ts) (API client), [`backend/src/server.js`](https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/server.js) (Express server)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public website"]
  node_spa["React application<br/>[App.tsx]"]
  node_clinical_pages["Clinical content"]
  node_booking["Appointment booking"]
  node_public_context["Hospital settings"]
end

subgraph group_cms["Staff CMS"]
  node_admin_pages["Admin workspace"]
  node_auth_ui["Staff sign-in<br/>[AuthContext.tsx]"]
  node_admin_editor["Content editor<br/>[WysiwygEditor.tsx]"]
end

subgraph group_api["API domains"]
  node_auth_routes["Authentication routes<br/>[authRoutes.js]"]
  node_auth_domain["Authentication and users<br/>[authController.js]"]
  node_appointments["Appointments"]
  node_enquiries["Enquiries"]
  node_clinical_api["Clinical content API"]
  node_media_api["Media management<br/>[mediaController.js]"]
  node_settings_api["Settings and CMS data"]
end

subgraph group_platform["Platform services"]
  node_api_client["API client<br/>[api.ts]"]
  node_api_router["API router<br/>[index.js]"]
  node_mysql[("MySQL database<br/>[db.js]")]
  node_uploads["Uploaded media<br/>[app.js]"]
  node_server["Express server<br/>[server.js]"]
end

node_visitor(("Visitor"))
node_staff(("Hospital staff"))

node_visitor -->|"browses"| node_spa
node_staff -->|"uses"| node_spa
node_spa -->|"routes to"| node_clinical_pages
node_spa -->|"routes to"| node_admin_pages
node_visitor -->|"books through"| node_booking
node_spa -->|"provides"| node_public_context
node_public_context -->|"fetches settings"| node_api_client
node_admin_pages -.->|"calls API"| node_api_client
node_auth_ui -.->|"calls API"| node_api_client
node_admin_editor -.->|"selects media"| node_media_api
node_api_client -.->|"requests API"| node_api_router
node_server -->|"mounts"| node_api_router
node_api_router -.->|"dispatches"| node_auth_routes
node_auth_routes -->|"routes to"| node_auth_domain
node_booking -.->|"submits appointment"| node_appointments
node_visitor -.->|"submits enquiry"| node_enquiries
node_clinical_pages -.->|"loads clinical content"| node_clinical_api
node_clinical_api -->|"queries"| node_mysql
node_auth_domain -->|"reads and writes"| node_mysql
node_media_api -->|"queries"| node_mysql
node_settings_api -.->|"persists settings"| node_mysql
node_server -->|"serves files"| node_uploads
node_server -->|"checks connection"| node_mysql

click node_spa "https://github.com/shaikrasheedali/final-sreemantha/blob/main/frontend/src/App.tsx"
click node_clinical_pages "https://github.com/shaikrasheedali/final-sreemantha/tree/main/frontend/src/pages"
click node_booking "https://github.com/shaikrasheedali/final-sreemantha/blob/main/frontend/src/pages/BookAppointmentPage.tsx"
click node_public_context "https://github.com/shaikrasheedali/final-sreemantha/blob/main/frontend/src/context/SettingsContext.tsx"
click node_admin_pages "https://github.com/shaikrasheedali/final-sreemantha/tree/main/frontend/src/pages/admin"
click node_auth_ui "https://github.com/shaikrasheedali/final-sreemantha/blob/main/frontend/src/context/AuthContext.tsx"
click node_admin_editor "https://github.com/shaikrasheedali/final-sreemantha/blob/main/frontend/src/components/WysiwygEditor.tsx"
click node_api_client "https://github.com/shaikrasheedali/final-sreemantha/blob/main/frontend/src/utils/api.ts"
click node_api_router "https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/routes/index.js"
click node_auth_routes "https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/routes/authRoutes.js"
click node_auth_domain "https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/controllers/authController.js"
click node_appointments "https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/controllers/appointmentsController.js"
click node_enquiries "https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/controllers/enquiriesController.js"
click node_clinical_api "https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/controllers/treatmentsController.js"
click node_media_api "https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/controllers/mediaController.js"
click node_settings_api "https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/controllers/settingsController.js"
click node_mysql "https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/config/db.js"
click node_uploads "https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/app.js"
click node_server "https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/server.js"

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_spa,node_clinical_pages,node_booking,node_public_context toneBlue
class node_admin_pages,node_auth_ui,node_admin_editor toneAmber
class node_auth_routes,node_auth_domain,node_appointments,node_enquiries,node_clinical_api,node_media_api,node_settings_api toneMint
class node_api_client,node_api_router,node_mysql,node_uploads,node_server toneRose
class node_visitor,node_staff toneIndigo
```

## Components

### Public website

- [React application](https://github.com/shaikrasheedali/final-sreemantha/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Clinical content](https://github.com/shaikrasheedali/final-sreemantha/tree/main/frontend/src/pages): `frontend/src/pages`
- [Appointment booking](https://github.com/shaikrasheedali/final-sreemantha/blob/main/frontend/src/pages/BookAppointmentPage.tsx): `frontend/src/pages/BookAppointmentPage.tsx`
- [Hospital settings](https://github.com/shaikrasheedali/final-sreemantha/blob/main/frontend/src/context/SettingsContext.tsx): `frontend/src/context/SettingsContext.tsx`

### Staff CMS

- [Admin workspace](https://github.com/shaikrasheedali/final-sreemantha/tree/main/frontend/src/pages/admin): `frontend/src/pages/admin`
- [Staff sign-in](https://github.com/shaikrasheedali/final-sreemantha/blob/main/frontend/src/context/AuthContext.tsx): `frontend/src/context/AuthContext.tsx`
- [Content editor](https://github.com/shaikrasheedali/final-sreemantha/blob/main/frontend/src/components/WysiwygEditor.tsx): `frontend/src/components/WysiwygEditor.tsx`

### API domains

- [Authentication routes](https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/routes/authRoutes.js): `backend/src/routes/authRoutes.js`
- [Authentication and users](https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/controllers/authController.js): `backend/src/controllers/authController.js`
- [Appointments](https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/controllers/appointmentsController.js): `backend/src/controllers/appointmentsController.js`
- [Enquiries](https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/controllers/enquiriesController.js): `backend/src/controllers/enquiriesController.js`
- [Clinical content API](https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/controllers/treatmentsController.js): `backend/src/controllers/treatmentsController.js`
- [Media management](https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/controllers/mediaController.js): `backend/src/controllers/mediaController.js`
- [Settings and CMS data](https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/controllers/settingsController.js): `backend/src/controllers/settingsController.js`

### Platform services

- [API client](https://github.com/shaikrasheedali/final-sreemantha/blob/main/frontend/src/utils/api.ts): `frontend/src/utils/api.ts`
- [API router](https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/routes/index.js): `backend/src/routes/index.js`
- [MySQL database](https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/config/db.js): `backend/src/config/db.js`
- [Uploaded media](https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/app.js): `backend/src/app.js`
- [Express server](https://github.com/shaikrasheedali/final-sreemantha/blob/main/backend/src/server.js): `backend/src/server.js`

### Other components

- **Visitor**
- **Hospital staff**

## Connections

- Visitor → React application: browses (evidence: `README.md`)
- Hospital staff → React application: uses (evidence: `README.md`)
- React application → Clinical content: routes to (evidence: `frontend/src/App.tsx`)
- React application → Admin workspace: routes to (evidence: `frontend/src/App.tsx`)
- Visitor → Appointment booking: books through (evidence: `README.md`)
- React application → Hospital settings: provides (evidence: `frontend/src/App.tsx`)
- Hospital settings → API client: fetches settings (evidence: `frontend/src/context/SettingsContext.tsx`)
- Admin workspace → API client: calls API
- Staff sign-in → API client: calls API
- Content editor → Media management: selects media
- API client → API router: requests API
- Express server → API router: mounts
- API router → Authentication routes: dispatches
- Authentication routes → Authentication and users: routes to (evidence: `backend/src/routes/authRoutes.js`)
- Appointment booking → Appointments: submits appointment
- Visitor → Enquiries: submits enquiry
- Clinical content → Clinical content API: loads clinical content
- Clinical content API → MySQL database: queries (evidence: `backend/src/controllers/treatmentsController.js`)
- Authentication and users → MySQL database: reads and writes (evidence: `backend/src/controllers/authController.js`)
- Media management → MySQL database: queries (evidence: `backend/src/controllers/mediaController.js`)
- Settings and CMS data → MySQL database: persists settings
- Express server → Uploaded media: serves files (evidence: `backend/src/app.js`)
- Express server → MySQL database: checks connection (evidence: `backend/src/server.js`)
