# coratech-projects/cardapio-cora architecture

> Architecture diagram of the GitHub repository coratech-projects/cardapio-cora, 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/coratech-projects/cardapio-cora
- Repository: https://github.com/coratech-projects/cardapio-cora

## Overview

Cardápio Cora is a local institutional meal-management web application. Administrators sign in, then manage daily menus, weekly routines, and settings; the public-facing monitor presents current menu and shift information, with documented automatic synchronization. Express routes read and mutate a JSON-backed database, while cookie/JWT middleware protects administrative operations. A separate TTS capability synthesizes audio through eSpeak and ONNX. The graph follows the sampled runtime wiring; monitor-to-sync client behavior and some frontend interactions are documented but their source was not sampled.

Main entry points: [`src/app.ts`](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/app.ts) (Express app), [`src/structures/db.ts`](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/structures/db.ts) (Database access), [`src/routes/Cardapio.ts`](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/routes/Cardapio.ts) (Menu management), [`src/routes/Adm.ts`](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/routes/Adm.ts) (Admin settings)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web runtime"]
  node_server["Express app<br/>[app.ts]"]
  node_login_ui["Login page<br/>[login.html]"]
  node_admin_ui["Admin dashboard<br/>[admin.html]"]
  node_monitor_ui["Monitor display<br/>[monitor.html]"]
end

subgraph group_access["Access control"]
  node_auth["JWT middleware<br/>[OAuth.ts]"]
  node_users["User sessions<br/>[User.ts]"]
end

subgraph group_operations["Meal operations"]
  node_admin_routes["Admin settings<br/>[Adm.ts]"]
  node_menu_routes["Menu management<br/>[Cardapio.ts]"]
  node_routine_routes["Routine management<br/>[Rotinas.ts]"]
  node_monitor_routes["Monitor serving<br/>[Monitor.ts]"]
end

subgraph group_persistence["Local persistence"]
  node_db_api["Database access<br/>[db.ts]"]
  node_database[("JSON database<br/>[Database.ts]")]
end

subgraph group_speech["Voice synthesis"]
  node_tts["TTS generation<br/>[Algorithm.ts]"]
  node_models["Speech model assets<br/>[model.onnx]"]
end

node_admin(("Administrator"))
node_public(("Public viewer"))
node_espeak["eSpeak NG"]

node_admin -->|"uses web app"| node_server
node_public -->|"opens monitor"| node_server
node_server -->|"serves static"| node_login_ui
node_server -->|"routes admin"| node_admin_ui
node_server -->|"serves static"| node_monitor_ui
node_server -->|"installs middleware"| node_auth
node_server -->|"mounts /user"| node_users
node_server -->|"mounts /admin"| node_admin_routes
node_server -->|"mounts /cardapio"| node_menu_routes
node_server -->|"mounts /rotinas"| node_routine_routes
node_server -->|"mounts /monitor"| node_monitor_routes
node_login_ui -.->|"submits credentials"| node_users
node_admin_ui -.->|"manages settings"| node_admin_routes
node_admin_ui -.->|"manages menu"| node_menu_routes
node_admin_ui -.->|"manages routines"| node_routine_routes
node_users -->|"creates token"| node_auth
node_admin_routes -->|"requires authorization"| node_auth
node_menu_routes -->|"requires authorization"| node_auth
node_routine_routes -->|"requires authorization"| node_auth
node_users -->|"reads accounts"| node_db_api
node_admin_routes -->|"reads and writes settings"| node_db_api
node_menu_routes -->|"reads and writes menu"| node_db_api
node_menu_routes -->|"reads routine data"| node_db_api
node_routine_routes -->|"reads and writes routines"| node_db_api
node_monitor_routes -->|"imports database access"| node_db_api
node_db_api -->|"instantiates store"| node_database
node_admin_routes -->|"requests speech"| node_tts
node_tts -->|"loads ONNX model"| node_models
node_tts -->|"converts text to phonemes"| node_espeak
node_monitor_ui -.->|"syncs menu data"| node_menu_routes

click node_server "https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/app.ts"
click node_login_ui "https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/public/_LOGIN/login.html"
click node_admin_ui "https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/public/_ADMIN/admin.html"
click node_monitor_ui "https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/public/_MONITOR/monitor.html"
click node_auth "https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/middlawere/OAuth.ts"
click node_users "https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/routes/User.ts"
click node_admin_routes "https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/routes/Adm.ts"
click node_menu_routes "https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/routes/Cardapio.ts"
click node_routine_routes "https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/routes/Rotinas.ts"
click node_monitor_routes "https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/routes/Monitor.ts"
click node_db_api "https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/structures/db.ts"
click node_database "https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/structures/Database.ts"
click node_tts "https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/IA/Algorithm.ts"
click node_models "https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/IA/models/model.onnx"

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_login_ui,node_admin_ui,node_monitor_ui,node_public toneBlue
class node_auth,node_users toneAmber
class node_admin_routes,node_menu_routes,node_routine_routes,node_monitor_routes toneMint
class node_db_api,node_database toneRose
class node_tts,node_models,node_admin,node_espeak toneIndigo
```

## Components

### Web runtime

- [Express app](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/app.ts): `src/app.ts`
- [Login page](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/public/_LOGIN/login.html): `src/public/_LOGIN/login.html`
- [Admin dashboard](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/public/_ADMIN/admin.html): `src/public/_ADMIN/admin.html`
- [Monitor display](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/public/_MONITOR/monitor.html): `src/public/_MONITOR/monitor.html`

### Access control

- [JWT middleware](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/middlawere/OAuth.ts): `src/middlawere/OAuth.ts`
- [User sessions](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/routes/User.ts): `src/routes/User.ts`

### Meal operations

- [Admin settings](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/routes/Adm.ts): `src/routes/Adm.ts`
- [Menu management](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/routes/Cardapio.ts): `src/routes/Cardapio.ts`
- [Routine management](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/routes/Rotinas.ts): `src/routes/Rotinas.ts`
- [Monitor serving](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/routes/Monitor.ts): `src/routes/Monitor.ts`

### Local persistence

- [Database access](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/structures/db.ts): `src/structures/db.ts`
- [JSON database](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/structures/Database.ts): `src/structures/Database.ts`

### Voice synthesis

- [TTS generation](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/IA/Algorithm.ts): `src/IA/Algorithm.ts`
- [Speech model assets](https://github.com/coratech-projects/cardapio-cora/blob/prototype/src/IA/models/model.onnx): `src/IA/models/model.onnx`

### Other components

- **Administrator**
- **Public viewer**
- **eSpeak NG**

## Connections

- Administrator → Express app: uses web app (evidence: `README.md`)
- Public viewer → Express app: opens monitor (evidence: `README.md`)
- Express app → Login page: serves static (evidence: `src/app.ts`)
- Express app → Admin dashboard: routes admin (evidence: `src/app.ts`)
- Express app → Monitor display: serves static (evidence: `src/app.ts`)
- Express app → JWT middleware: installs middleware (evidence: `src/app.ts`)
- Express app → User sessions: mounts /user (evidence: `src/app.ts`)
- Express app → Admin settings: mounts /admin (evidence: `src/app.ts`)
- Express app → Menu management: mounts /cardapio (evidence: `src/app.ts`)
- Express app → Routine management: mounts /rotinas (evidence: `src/app.ts`)
- Express app → Monitor serving: mounts /monitor (evidence: `src/app.ts`)
- Login page → User sessions: submits credentials
- Admin dashboard → Admin settings: manages settings
- Admin dashboard → Menu management: manages menu
- Admin dashboard → Routine management: manages routines
- User sessions → JWT middleware: creates token (evidence: `src/routes/User.ts`)
- Admin settings → JWT middleware: requires authorization (evidence: `src/routes/Adm.ts`)
- Menu management → JWT middleware: requires authorization (evidence: `src/routes/Cardapio.ts`)
- Routine management → JWT middleware: requires authorization (evidence: `src/routes/Rotinas.ts`)
- User sessions → Database access: reads accounts (evidence: `src/routes/User.ts`)
- Admin settings → Database access: reads and writes settings (evidence: `src/routes/Adm.ts`)
- Menu management → Database access: reads and writes menu (evidence: `src/routes/Cardapio.ts`)
- Menu management → Database access: reads routine data (evidence: `src/routes/Cardapio.ts`)
- Routine management → Database access: reads and writes routines (evidence: `src/routes/Rotinas.ts`)
- Monitor serving → Database access: imports database access (evidence: `src/routes/Monitor.ts`)
- Database access → JSON database: instantiates store (evidence: `src/structures/db.ts`)
- Admin settings → TTS generation: requests speech (evidence: `src/routes/Adm.ts`)
- TTS generation → Speech model assets: loads ONNX model (evidence: `src/IA/Algorithm.ts`)
- TTS generation → eSpeak NG: converts text to phonemes (evidence: `src/IA/Algorithm.ts`)
- Monitor display → Menu management: syncs menu data (evidence: `README.md`)
