# harold474/saludya_backend architecture

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

- Interactive diagram: https://gitdiagram.com/harold474/saludya_backend
- Repository: https://github.com/harold474/saludya_backend

## Overview

SaludYa is a clinic-management backend exposed through an Express API. Its visible workflows include role-based login and registration, patient and appointment administration, appointment booking and history, and password recovery. Route handlers in the monolithic server query the MySQL pool; recovery also sends email through Brevo. The excerpts show only selected routes, so this map preserves documented-by-code capabilities without inferring unshown subsystems or finer-grained call paths.

Main entry points: [`server.js`](https://github.com/harold474/saludya_backend/blob/main/server.js) (Express API), [`db.js`](https://github.com/harold474/saludya_backend/blob/main/db.js) (MySQL pool)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["HTTP API"]
  node_server["Express API<br/>[server.js]"]
end

subgraph group_accounts["Accounts"]
  node_auth["Login<br/>[server.js]"]
  node_registration["Account registration<br/>[server.js]"]
  node_recovery["Password recovery<br/>[server.js]"]
  node_reset["Password reset<br/>[server.js]"]
end

subgraph group_clinic["Clinic operations"]
  node_patients["Patient administration<br/>[server.js]"]
  node_appointments["Appointment management<br/>[server.js]"]
  node_history["Appointment history<br/>[server.js]"]
end

subgraph group_persistence["Persistence"]
  node_mysql[("MySQL pool<br/>[db.js]")]
end

subgraph group_integrations["Integrations"]
  node_brevo["Brevo email service"]
end

node_clients(("API clients"))

node_clients -->|"send requests"| node_server
node_server -->|"routes requests"| node_auth
node_server -->|"routes requests"| node_registration
node_server -->|"routes requests"| node_recovery
node_server -->|"routes requests"| node_reset
node_server -->|"routes requests"| node_patients
node_server -->|"routes requests"| node_appointments
node_server -->|"routes requests"| node_history
node_auth -->|"queries users"| node_mysql
node_registration -->|"checks and writes"| node_mysql
node_recovery -->|"stores code"| node_mysql
node_recovery -->|"sends email"| node_brevo
node_reset -->|"checks and updates"| node_mysql
node_patients -->|"queries patients"| node_mysql
node_appointments -->|"checks and updates"| node_mysql
node_history -->|"queries appointments"| node_mysql

click node_server "https://github.com/harold474/saludya_backend/blob/main/server.js"
click node_auth "https://github.com/harold474/saludya_backend/blob/main/server.js"
click node_registration "https://github.com/harold474/saludya_backend/blob/main/server.js"
click node_recovery "https://github.com/harold474/saludya_backend/blob/main/server.js"
click node_reset "https://github.com/harold474/saludya_backend/blob/main/server.js"
click node_patients "https://github.com/harold474/saludya_backend/blob/main/server.js"
click node_appointments "https://github.com/harold474/saludya_backend/blob/main/server.js"
click node_history "https://github.com/harold474/saludya_backend/blob/main/server.js"
click node_mysql "https://github.com/harold474/saludya_backend/blob/main/db.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_server,node_clients toneBlue
class node_auth,node_registration,node_recovery,node_reset toneAmber
class node_patients,node_appointments,node_history toneMint
class node_mysql toneRose
class node_brevo toneIndigo
```

## Components

### HTTP API

- [Express API](https://github.com/harold474/saludya_backend/blob/main/server.js): `server.js`

### Accounts

- [Login](https://github.com/harold474/saludya_backend/blob/main/server.js): `server.js`
- [Account registration](https://github.com/harold474/saludya_backend/blob/main/server.js): `server.js`
- [Password recovery](https://github.com/harold474/saludya_backend/blob/main/server.js): `server.js`
- [Password reset](https://github.com/harold474/saludya_backend/blob/main/server.js): `server.js`

### Clinic operations

- [Patient administration](https://github.com/harold474/saludya_backend/blob/main/server.js): `server.js`
- [Appointment management](https://github.com/harold474/saludya_backend/blob/main/server.js): `server.js`
- [Appointment history](https://github.com/harold474/saludya_backend/blob/main/server.js): `server.js`

### Persistence

- [MySQL pool](https://github.com/harold474/saludya_backend/blob/main/db.js): `db.js`

### Integrations

- **Brevo email service**

### Other components

- **API clients**

## Connections

- API clients → Express API: send requests (evidence: `server.js`)
- Express API → Login: routes requests (evidence: `server.js`)
- Express API → Account registration: routes requests (evidence: `server.js`)
- Express API → Password recovery: routes requests (evidence: `server.js`)
- Express API → Password reset: routes requests (evidence: `server.js`)
- Express API → Patient administration: routes requests (evidence: `server.js`)
- Express API → Appointment management: routes requests (evidence: `server.js`)
- Express API → Appointment history: routes requests (evidence: `server.js`)
- Login → MySQL pool: queries users (evidence: `server.js`)
- Account registration → MySQL pool: checks and writes (evidence: `server.js`)
- Password recovery → MySQL pool: stores code (evidence: `server.js`)
- Password recovery → Brevo email service: sends email (evidence: `server.js`)
- Password reset → MySQL pool: checks and updates (evidence: `server.js`)
- Patient administration → MySQL pool: queries patients (evidence: `server.js`)
- Appointment management → MySQL pool: checks and updates (evidence: `server.js`)
- Appointment history → MySQL pool: queries appointments (evidence: `server.js`)
