# segovia0/liceo architecture

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

## Overview

El producto es una SPA para control académico de un liceo: el personal inicia sesión y gestiona estudiantes, calificaciones y boletines. El servidor Express publica la interfaz y enruta las operaciones hacia controladores que consultan SQLite; la interfaz calcula métricas y presenta las vistas académicas. La documentación describe varias capacidades del cliente, pero no se proporcionaron sus archivos fuente; esas relaciones se indican solo cuando la README las documenta. La carga de fotos aparece en las rutas de estudiantes; no se infiere uso del middleware separado.

Main entry points: [`public/index.html`](https://github.com/segovia0/liceo/blob/main/public/index.html) (Panel y gestión), [`routes/estudianteRoutes.js`](https://github.com/segovia0/liceo/blob/main/routes/estudianteRoutes.js) (Rutas de estudiantes), [`server.js`](https://github.com/segovia0/liceo/blob/main/server.js) (Servidor Express), [`config/db.js`](https://github.com/segovia0/liceo/blob/main/config/db.js) (Conexión SQLite)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Interfaz académica"]
  node_spa["Panel y gestión<br/>[index.html]"]
  node_loginui["Pantalla de acceso<br/>[login.html]"]
  node_dashboard["Panel métrico<br/>[index.html]"]
  node_gradesui["Carga de notas<br/>[index.html]"]
  node_bulletin["Boletín imprimible<br/>[index.html]"]
end

subgraph group_access["Acceso y API"]
  node_server["Servidor Express<br/>[server.js]"]
  node_authroutes["Rutas de acceso<br/>[authRoutes.js]"]
  node_auth["Autenticación<br/>[authController.js]"]
  node_studentroutes["Rutas de estudiantes"]
end

subgraph group_records["Gestión académica"]
  node_students["Gestión de expedientes"]
  node_grades["Gestión de calificaciones"]
end

subgraph group_storage["Persistencia y archivos"]
  node_users["Acceso a usuarios<br/>[usuarioModel.js]"]
  node_dbconfig["Conexión SQLite<br/>[db.js]"]
  node_database[("Base académica<br/>[liceo.sqlite]")]
  node_photos["Fotos de estudiantes"]
end

node_staff(("Personal del liceo"))

node_staff -->|"inicia sesión"| node_loginui
node_staff -->|"gestiona estudios"| node_spa
node_server -->|"monta rutas"| node_authroutes
node_server -->|"monta rutas"| node_studentroutes
node_server -->|"sirve estáticos"| node_spa
node_server -->|"sirve archivos"| node_photos
node_authroutes -->|"deriva login"| node_auth
node_studentroutes -->|"deriva operaciones"| node_students
node_studentroutes -->|"deriva notas"| node_grades
node_auth -->|"busca usuario"| node_users
node_users -->|"consulta usuarios"| node_dbconfig
node_dbconfig -->|"abre SQLite"| node_database
node_students -->|"consulta y modifica"| node_dbconfig
node_grades -->|"lee y guarda notas"| node_dbconfig
node_studentroutes -->|"guarda imágenes"| node_photos
node_loginui -.->|"solicita acceso"| node_authroutes
node_spa -.->|"consume API"| node_studentroutes
node_dashboard -->|"calcula métricas"| node_spa
node_gradesui -->|"edita calificaciones"| node_spa
node_bulletin -->|"presenta notas"| node_spa

click node_spa "https://github.com/segovia0/liceo/blob/main/public/index.html"
click node_loginui "https://github.com/segovia0/liceo/blob/main/public/login.html"
click node_dashboard "https://github.com/segovia0/liceo/blob/main/public/index.html"
click node_gradesui "https://github.com/segovia0/liceo/blob/main/public/index.html"
click node_bulletin "https://github.com/segovia0/liceo/blob/main/public/index.html"
click node_server "https://github.com/segovia0/liceo/blob/main/server.js"
click node_authroutes "https://github.com/segovia0/liceo/blob/main/routes/authRoutes.js"
click node_auth "https://github.com/segovia0/liceo/blob/main/controllers/authController.js"
click node_studentroutes "https://github.com/segovia0/liceo/blob/main/routes/estudianteRoutes.js"
click node_students "https://github.com/segovia0/liceo/blob/main/controllers/estudianteController.js"
click node_grades "https://github.com/segovia0/liceo/blob/main/controllers/estudianteController.js"
click node_users "https://github.com/segovia0/liceo/blob/main/models/usuarioModel.js"
click node_dbconfig "https://github.com/segovia0/liceo/blob/main/config/db.js"
click node_database "https://github.com/segovia0/liceo/blob/main/liceo.sqlite"
click node_photos "https://github.com/segovia0/liceo/tree/main/uploads/estudiantes"

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_loginui,node_dashboard,node_gradesui,node_bulletin toneBlue
class node_server,node_authroutes,node_auth,node_studentroutes toneAmber
class node_students,node_grades toneMint
class node_users,node_dbconfig,node_database,node_photos toneRose
class node_staff toneIndigo
```

## Components

### Interfaz académica

- [Panel y gestión](https://github.com/segovia0/liceo/blob/main/public/index.html): `public/index.html`
- [Pantalla de acceso](https://github.com/segovia0/liceo/blob/main/public/login.html): `public/login.html`
- [Panel métrico](https://github.com/segovia0/liceo/blob/main/public/index.html): `public/index.html`
- [Carga de notas](https://github.com/segovia0/liceo/blob/main/public/index.html): `public/index.html`
- [Boletín imprimible](https://github.com/segovia0/liceo/blob/main/public/index.html): `public/index.html`

### Acceso y API

- [Servidor Express](https://github.com/segovia0/liceo/blob/main/server.js): `server.js`
- [Rutas de acceso](https://github.com/segovia0/liceo/blob/main/routes/authRoutes.js): `routes/authRoutes.js`
- [Autenticación](https://github.com/segovia0/liceo/blob/main/controllers/authController.js): `controllers/authController.js`
- [Rutas de estudiantes](https://github.com/segovia0/liceo/blob/main/routes/estudianteRoutes.js): `routes/estudianteRoutes.js`

### Gestión académica

- [Gestión de expedientes](https://github.com/segovia0/liceo/blob/main/controllers/estudianteController.js): `controllers/estudianteController.js`
- [Gestión de calificaciones](https://github.com/segovia0/liceo/blob/main/controllers/estudianteController.js): `controllers/estudianteController.js`

### Persistencia y archivos

- [Acceso a usuarios](https://github.com/segovia0/liceo/blob/main/models/usuarioModel.js): `models/usuarioModel.js`
- [Conexión SQLite](https://github.com/segovia0/liceo/blob/main/config/db.js): `config/db.js`
- [Base académica](https://github.com/segovia0/liceo/blob/main/liceo.sqlite): `liceo.sqlite`
- [Fotos de estudiantes](https://github.com/segovia0/liceo/tree/main/uploads/estudiantes): `uploads/estudiantes`

### Other components

- **Personal del liceo**

## Connections

- Personal del liceo → Pantalla de acceso: inicia sesión (evidence: `README.md`)
- Personal del liceo → Panel y gestión: gestiona estudios (evidence: `README.md`)
- Servidor Express → Rutas de acceso: monta rutas (evidence: `server.js`)
- Servidor Express → Rutas de estudiantes: monta rutas (evidence: `server.js`)
- Servidor Express → Panel y gestión: sirve estáticos (evidence: `server.js`)
- Servidor Express → Fotos de estudiantes: sirve archivos (evidence: `server.js`)
- Rutas de acceso → Autenticación: deriva login (evidence: `routes/authRoutes.js`)
- Rutas de estudiantes → Gestión de expedientes: deriva operaciones (evidence: `routes/estudianteRoutes.js`)
- Rutas de estudiantes → Gestión de calificaciones: deriva notas (evidence: `routes/estudianteRoutes.js`)
- Autenticación → Acceso a usuarios: busca usuario (evidence: `controllers/authController.js`)
- Acceso a usuarios → Conexión SQLite: consulta usuarios (evidence: `models/usuarioModel.js`)
- Conexión SQLite → Base académica: abre SQLite (evidence: `config/db.js`)
- Gestión de expedientes → Conexión SQLite: consulta y modifica (evidence: `controllers/estudianteController.js`)
- Gestión de calificaciones → Conexión SQLite: lee y guarda notas (evidence: `controllers/estudianteController.js`)
- Rutas de estudiantes → Fotos de estudiantes: guarda imágenes (evidence: `routes/estudianteRoutes.js`)
- Pantalla de acceso → Rutas de acceso: solicita acceso (evidence: `README.md`)
- Panel y gestión → Rutas de estudiantes: consume API (evidence: `README.md`)
- Panel métrico → Panel y gestión: calcula métricas (evidence: `README.md`)
- Carga de notas → Panel y gestión: edita calificaciones (evidence: `README.md`)
- Boletín imprimible → Panel y gestión: presenta notas (evidence: `README.md`)
