# sam77g/amparo architecture

> Architecture diagram of the GitHub repository sam77g/amparo, 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/sam77g/amparo
- Repository: https://github.com/sam77g/amparo

## Overview

AMPARO is a care-management application for older adults, caregivers, and administrators. Users access role-specific profile, patient dashboard, medication, vital-sign, and administration features through a React interface; API requests reach a Node.js service that reads and writes MySQL data. Capacitor provides an Android shell for the frontend. The frontend is a substantial single-file application, so its distinct capabilities are shown as responsibilities sharing that implementation path. Backend route excerpts are partial; unshown subsystem details and links are not inferred.

Main entry points: [`frontend/src/api.js`](https://github.com/sam77g/amparo/blob/main/frontend/src/api.js) (API client), [`frontend/src/App.jsx`](https://github.com/sam77g/amparo/blob/main/frontend/src/App.jsx) (Role-based interface), [`backend/server.js`](https://github.com/sam77g/amparo/blob/main/backend/server.js) (Authentication), [`frontend/android/app/src/main/java/com/seudominio/amparo/MainActivity.java`](https://github.com/sam77g/amparo/blob/main/frontend/android/app/src/main/java/com/seudominio/amparo/MainActivity.java) (Capacitor Android shell)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Client experience"]
  node_app["Role-based interface<br/>[App.jsx]"]
  node_profile["Profiles<br/>[App.jsx]"]
  node_care_ui["Care dashboard<br/>[App.jsx]"]
  node_med_ui["Medication tracking<br/>[App.jsx]"]
  node_vitals_ui["Vital charts<br/>[App.jsx]"]
  node_admin_ui["User administration<br/>[App.jsx]"]
  node_api["API client<br/>[api.js]"]
end

subgraph group_service["Care service"]
  node_auth["Authentication<br/>[server.js]"]
  node_profile_service["Profile service<br/>[server.js]"]
  node_care_service["Patient dashboard<br/>[server.js]"]
  node_med_service["Medication service<br/>[server.js]"]
  node_vitals_service["Vitals service<br/>[server.js]"]
  node_patient_service["Patient management<br/>[server.js]"]
  node_admin_service["Admin operations<br/>[server.js]"]
end

subgraph group_data["Care data"]
  node_mysql[("MySQL database")]
end

subgraph group_mobile["Mobile shell"]
  node_android["Capacitor Android shell<br/>[MainActivity.java]"]
end

node_people(("Older adults, caregivers, admins"))

node_people -->|"use"| node_app
node_app -->|"calls"| node_api
node_api -->|"requests"| node_auth
node_api -->|"requests"| node_profile_service
node_api -->|"requests"| node_care_service
node_api -->|"requests"| node_med_service
node_api -->|"requests"| node_vitals_service
node_api -->|"requests"| node_patient_service
node_api -->|"requests"| node_admin_service
node_auth -->|"queries"| node_mysql
node_profile_service -->|"queries"| node_mysql
node_care_service -->|"queries"| node_mysql
node_med_service -->|"queries"| node_mysql
node_vitals_service -->|"queries"| node_mysql
node_patient_service -->|"queries"| node_mysql
node_admin_service -->|"queries"| node_mysql
node_app -.->|"runs within"| node_android

click node_app "https://github.com/sam77g/amparo/blob/main/frontend/src/App.jsx"
click node_profile "https://github.com/sam77g/amparo/blob/main/frontend/src/App.jsx"
click node_care_ui "https://github.com/sam77g/amparo/blob/main/frontend/src/App.jsx"
click node_med_ui "https://github.com/sam77g/amparo/blob/main/frontend/src/App.jsx"
click node_vitals_ui "https://github.com/sam77g/amparo/blob/main/frontend/src/App.jsx"
click node_admin_ui "https://github.com/sam77g/amparo/blob/main/frontend/src/App.jsx"
click node_api "https://github.com/sam77g/amparo/blob/main/frontend/src/api.js"
click node_auth "https://github.com/sam77g/amparo/blob/main/backend/server.js"
click node_profile_service "https://github.com/sam77g/amparo/blob/main/backend/server.js"
click node_care_service "https://github.com/sam77g/amparo/blob/main/backend/server.js"
click node_med_service "https://github.com/sam77g/amparo/blob/main/backend/server.js"
click node_vitals_service "https://github.com/sam77g/amparo/blob/main/backend/server.js"
click node_patient_service "https://github.com/sam77g/amparo/blob/main/backend/server.js"
click node_admin_service "https://github.com/sam77g/amparo/blob/main/backend/server.js"
click node_android "https://github.com/sam77g/amparo/blob/main/frontend/android/app/src/main/java/com/seudominio/amparo/MainActivity.java"

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_profile,node_care_ui,node_med_ui,node_vitals_ui,node_admin_ui,node_api toneBlue
class node_auth,node_profile_service,node_care_service,node_med_service,node_vitals_service,node_patient_service,node_admin_service toneAmber
class node_mysql toneMint
class node_android toneRose
class node_people toneIndigo
```

## Components

### Client experience

- [Role-based interface](https://github.com/sam77g/amparo/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Profiles](https://github.com/sam77g/amparo/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Care dashboard](https://github.com/sam77g/amparo/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Medication tracking](https://github.com/sam77g/amparo/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Vital charts](https://github.com/sam77g/amparo/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [User administration](https://github.com/sam77g/amparo/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [API client](https://github.com/sam77g/amparo/blob/main/frontend/src/api.js): `frontend/src/api.js`

### Care service

- [Authentication](https://github.com/sam77g/amparo/blob/main/backend/server.js): `backend/server.js`
- [Profile service](https://github.com/sam77g/amparo/blob/main/backend/server.js): `backend/server.js`
- [Patient dashboard](https://github.com/sam77g/amparo/blob/main/backend/server.js): `backend/server.js`
- [Medication service](https://github.com/sam77g/amparo/blob/main/backend/server.js): `backend/server.js`
- [Vitals service](https://github.com/sam77g/amparo/blob/main/backend/server.js): `backend/server.js`
- [Patient management](https://github.com/sam77g/amparo/blob/main/backend/server.js): `backend/server.js`
- [Admin operations](https://github.com/sam77g/amparo/blob/main/backend/server.js): `backend/server.js`

### Care data

- **MySQL database**

### Mobile shell

- [Capacitor Android shell](https://github.com/sam77g/amparo/blob/main/frontend/android/app/src/main/java/com/seudominio/amparo/MainActivity.java): `frontend/android/app/src/main/java/com/seudominio/amparo/MainActivity.java`

### Other components

- **Older adults, caregivers, admins**

## Connections

- Older adults, caregivers, admins → Role-based interface: use (evidence: `README.md`)
- Role-based interface → API client: calls (evidence: `frontend/src/App.jsx`)
- API client → Authentication: requests (evidence: `frontend/src/api.js`)
- API client → Profile service: requests (evidence: `frontend/src/api.js`)
- API client → Patient dashboard: requests (evidence: `frontend/src/api.js`)
- API client → Medication service: requests (evidence: `frontend/src/api.js`)
- API client → Vitals service: requests (evidence: `frontend/src/api.js`)
- API client → Patient management: requests (evidence: `frontend/src/api.js`)
- API client → Admin operations: requests (evidence: `frontend/src/api.js`)
- Authentication → MySQL database: queries (evidence: `backend/server.js`)
- Profile service → MySQL database: queries (evidence: `backend/server.js`)
- Patient dashboard → MySQL database: queries (evidence: `backend/server.js`)
- Medication service → MySQL database: queries (evidence: `backend/server.js`)
- Vitals service → MySQL database: queries (evidence: `backend/server.js`)
- Patient management → MySQL database: queries (evidence: `backend/server.js`)
- Admin operations → MySQL database: queries (evidence: `backend/server.js`)
- Role-based interface → Capacitor Android shell: runs within (evidence: `README.md`)
