# haroldducon/mision_espacial architecture

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

## Overview

Misión Espacial es una aplicación educativa: familias administran pilotos y materias, registran puntos y premios, y consultan informes; los niños juegan actividades por grado cuyos resultados se guardan para seguimiento. La interfaz React llama a la API Express, que consulta PostgreSQL. Las rutas y algunas llamadas están respaldadas por los extractos; las capacidades de informes y administración se conservan según los módulos indexados. El backend no está dividido en servicios en lo mostrado, así que sus etapas API comparten archivo. La implementación de correo y los detalles de rutas no muestreados no se amplían.

Main entry points: [`frontend/src/App.jsx`](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/App.jsx) (Aplicación y rutas), [`backend/index.js`](https://github.com/haroldducon/mision_espacial/blob/main/backend/index.js) (API de la aplicación), [`frontend/src/components/games/juegosApi.js`](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/games/juegosApi.js) (Resultados e historial), [`backend/db.js`](https://github.com/haroldducon/mision_espacial/blob/main/backend/db.js) (Cliente PostgreSQL)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Experiencia web"]
  node_app["Aplicación y rutas<br/>[App.jsx]"]
  node_config["URL de API<br/>[config.js]"]
end

subgraph group_family["Gestión familiar"]
  node_pilot["Gestión de pilotos<br/>[RegistroPiloto.jsx]"]
  node_control["Panel familiar<br/>[PanelPapas.jsx]"]
  node_subjects["Gestión de materias"]
  node_prizes["Configuración de premios<br/>[ConfigPremios.jsx]"]
  node_progress["Visores de progreso"]
  node_metrics["Métricas semanales<br/>[Metricas.jsx]"]
  node_monthly["Informe mensual<br/>[Mensual.jsx]"]
  node_diagnosis["Diagnóstico académico<br/>[Diagnostico.jsx]"]
end

subgraph group_play["Juegos educativos"]
  node_gamesmenu["Menú de juegos<br/>[GamesMenu.jsx]"]
  node_catalog["Catálogo y grados<br/>[gamesCatalog.js]"]
  node_router["Despacho de juegos<br/>[GamesRouter.jsx]"]
  node_game["Juegos por actividad"]
  node_reading["Banco de lecturas<br/>[readingBank.js]"]
  node_gameapi["Resultados e historial<br/>[juegosApi.js]"]
end

subgraph group_backend["API y persistencia"]
  node_api["API de la aplicación<br/>[index.js]"]
  node_authapi["Autenticación y pilotos<br/>[index.js]"]
  node_scoreapi["Puntos e informes<br/>[index.js]"]
  node_gameapi_backend["Resultados de juegos<br/>[index.js]"]
  node_dbclient["Cliente PostgreSQL<br/>[db.js]"]
end

node_user(("Familia y piloto"))
node_postgres[("PostgreSQL")]
node_email["Servicio de correo"]

node_user -->|"usa"| node_app
node_app -->|"muestra rutas"| node_pilot
node_app -->|"muestra rutas"| node_control
node_app -->|"muestra rutas"| node_prizes
node_app -->|"muestra rutas"| node_subjects
node_app -->|"carga progreso"| node_progress
node_app -->|"muestra rutas"| node_metrics
node_app -->|"muestra rutas"| node_monthly
node_app -->|"muestra rutas"| node_diagnosis
node_app -->|"muestra ruta"| node_gamesmenu
node_pilot -.->|"obtiene URL"| node_config
node_control -->|"consulta y registra"| node_api
node_diagnosis -->|"consulta diagnóstico"| node_api
node_app -->|"consulta progreso y premios"| node_api
node_app -->|"obtiene URL"| node_config
node_gamesmenu -->|"lee catálogo"| node_catalog
node_gamesmenu -->|"consulta resúmenes"| node_gameapi
node_router -->|"despacha a"| node_game
node_game -->|"consulta juegos y grados"| node_catalog
node_game -->|"lee historias"| node_reading
node_game -->|"guarda resultados"| node_gameapi
node_gameapi -->|"obtiene URL"| node_config
node_gameapi -->|"envía resultados"| node_gameapi_backend
node_gameapi -->|"consulta historial"| node_gameapi_backend
node_api -.->|"contiene rutas"| node_authapi
node_api -.->|"contiene rutas"| node_scoreapi
node_api -.->|"contiene rutas"| node_gameapi_backend
node_api -->|"consulta datos"| node_dbclient
node_authapi -->|"consulta y modifica"| node_dbclient
node_scoreapi -.->|"consulta y modifica"| node_dbclient
node_gameapi_backend -.->|"persiste partidas"| node_dbclient
node_dbclient -->|"conecta"| node_postgres
node_authapi -.->|"envía códigos"| node_email

click node_app "https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/App.jsx"
click node_config "https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/config.js"
click node_pilot "https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/RegistroPiloto.jsx"
click node_control "https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/PanelPapas.jsx"
click node_subjects "https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/GestionMaterias.jsx"
click node_prizes "https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/ConfigPremios.jsx"
click node_progress "https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/VisorAstronauta.jsx"
click node_metrics "https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/Metricas.jsx"
click node_monthly "https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/Mensual.jsx"
click node_diagnosis "https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/Diagnostico.jsx"
click node_gamesmenu "https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/games/GamesMenu.jsx"
click node_catalog "https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/games/gamesCatalog.js"
click node_router "https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/games/GamesRouter.jsx"
click node_game "https://github.com/haroldducon/mision_espacial/tree/main/frontend/src/components/games"
click node_reading "https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/games/readingBank.js"
click node_gameapi "https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/games/juegosApi.js"
click node_api "https://github.com/haroldducon/mision_espacial/blob/main/backend/index.js"
click node_authapi "https://github.com/haroldducon/mision_espacial/blob/main/backend/index.js"
click node_scoreapi "https://github.com/haroldducon/mision_espacial/blob/main/backend/index.js"
click node_gameapi_backend "https://github.com/haroldducon/mision_espacial/blob/main/backend/index.js"
click node_dbclient "https://github.com/haroldducon/mision_espacial/blob/main/backend/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_app,node_config toneBlue
class node_pilot,node_control,node_subjects,node_prizes,node_progress,node_metrics,node_monthly,node_diagnosis,node_postgres toneAmber
class node_gamesmenu,node_catalog,node_router,node_game,node_reading,node_gameapi toneMint
class node_api,node_authapi,node_scoreapi,node_gameapi_backend,node_dbclient toneRose
class node_user,node_email toneIndigo
```

## Components

### Experiencia web

- [Aplicación y rutas](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [URL de API](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/config.js): `frontend/src/config.js`

### Gestión familiar

- [Gestión de pilotos](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/RegistroPiloto.jsx): `frontend/src/components/RegistroPiloto.jsx`
- [Panel familiar](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/PanelPapas.jsx): `frontend/src/components/PanelPapas.jsx`
- [Gestión de materias](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/GestionMaterias.jsx): `frontend/src/components/GestionMaterias.jsx`
- [Configuración de premios](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/ConfigPremios.jsx): `frontend/src/components/ConfigPremios.jsx`
- [Visores de progreso](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/VisorAstronauta.jsx): `frontend/src/components/VisorAstronauta.jsx`
- [Métricas semanales](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/Metricas.jsx): `frontend/src/components/Metricas.jsx`
- [Informe mensual](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/Mensual.jsx): `frontend/src/components/Mensual.jsx`
- [Diagnóstico académico](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/Diagnostico.jsx): `frontend/src/components/Diagnostico.jsx`

### Juegos educativos

- [Menú de juegos](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/games/GamesMenu.jsx): `frontend/src/components/games/GamesMenu.jsx`
- [Catálogo y grados](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/games/gamesCatalog.js): `frontend/src/components/games/gamesCatalog.js`
- [Despacho de juegos](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/games/GamesRouter.jsx): `frontend/src/components/games/GamesRouter.jsx`
- [Juegos por actividad](https://github.com/haroldducon/mision_espacial/tree/main/frontend/src/components/games): `frontend/src/components/games`
- [Banco de lecturas](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/games/readingBank.js): `frontend/src/components/games/readingBank.js`
- [Resultados e historial](https://github.com/haroldducon/mision_espacial/blob/main/frontend/src/components/games/juegosApi.js): `frontend/src/components/games/juegosApi.js`

### API y persistencia

- [API de la aplicación](https://github.com/haroldducon/mision_espacial/blob/main/backend/index.js): `backend/index.js`
- [Autenticación y pilotos](https://github.com/haroldducon/mision_espacial/blob/main/backend/index.js): `backend/index.js`
- [Puntos e informes](https://github.com/haroldducon/mision_espacial/blob/main/backend/index.js): `backend/index.js`
- [Resultados de juegos](https://github.com/haroldducon/mision_espacial/blob/main/backend/index.js): `backend/index.js`
- [Cliente PostgreSQL](https://github.com/haroldducon/mision_espacial/blob/main/backend/db.js): `backend/db.js`

### Other components

- **Familia y piloto**
- **PostgreSQL**
- **Servicio de correo**

## Connections

- Familia y piloto → Aplicación y rutas: usa (evidence: `frontend/src/App.jsx`)
- Aplicación y rutas → Gestión de pilotos: muestra rutas (evidence: `frontend/src/App.jsx`)
- Aplicación y rutas → Panel familiar: muestra rutas (evidence: `frontend/src/App.jsx`)
- Aplicación y rutas → Configuración de premios: muestra rutas (evidence: `frontend/src/App.jsx`)
- Aplicación y rutas → Gestión de materias: muestra rutas (evidence: `frontend/src/App.jsx`)
- Aplicación y rutas → Visores de progreso: carga progreso (evidence: `frontend/src/App.jsx`)
- Aplicación y rutas → Métricas semanales: muestra rutas (evidence: `frontend/src/App.jsx`)
- Aplicación y rutas → Informe mensual: muestra rutas (evidence: `frontend/src/App.jsx`)
- Aplicación y rutas → Diagnóstico académico: muestra rutas (evidence: `frontend/src/App.jsx`)
- Aplicación y rutas → Menú de juegos: muestra ruta (evidence: `frontend/src/App.jsx`)
- Gestión de pilotos → URL de API: obtiene URL (evidence: `frontend/src/components/RegistroPiloto.jsx`)
- Panel familiar → API de la aplicación: consulta y registra (evidence: `frontend/src/components/PanelPapas.jsx`)
- Diagnóstico académico → API de la aplicación: consulta diagnóstico (evidence: `frontend/src/components/Diagnostico.jsx`)
- Aplicación y rutas → API de la aplicación: consulta progreso y premios (evidence: `frontend/src/App.jsx`)
- Aplicación y rutas → URL de API: obtiene URL (evidence: `frontend/src/config.js`)
- Menú de juegos → Catálogo y grados: lee catálogo (evidence: `frontend/src/components/games/GamesMenu.jsx`)
- Menú de juegos → Resultados e historial: consulta resúmenes (evidence: `frontend/src/components/games/GamesMenu.jsx`)
- Despacho de juegos → Juegos por actividad: despacha a (evidence: `frontend/src/components/games/GamesRouter.jsx`)
- Juegos por actividad → Catálogo y grados: consulta juegos y grados (evidence: `frontend/src/components/games/JuegoLectura.jsx`)
- Juegos por actividad → Banco de lecturas: lee historias (evidence: `frontend/src/components/games/JuegoLectura.jsx`)
- Juegos por actividad → Resultados e historial: guarda resultados (evidence: `frontend/src/components/games/JuegoLectura.jsx`)
- Resultados e historial → URL de API: obtiene URL (evidence: `frontend/src/components/games/juegosApi.js`)
- Resultados e historial → Resultados de juegos: envía resultados (evidence: `frontend/src/components/games/juegosApi.js`)
- Resultados e historial → Resultados de juegos: consulta historial (evidence: `frontend/src/components/games/juegosApi.js`)
- API de la aplicación → Autenticación y pilotos: contiene rutas (evidence: `backend/index.js`)
- API de la aplicación → Puntos e informes: contiene rutas (evidence: `backend/index.js`)
- API de la aplicación → Resultados de juegos: contiene rutas (evidence: `backend/index.js`)
- API de la aplicación → Cliente PostgreSQL: consulta datos (evidence: `backend/index.js`)
- Autenticación y pilotos → Cliente PostgreSQL: consulta y modifica (evidence: `backend/index.js`)
- Puntos e informes → Cliente PostgreSQL: consulta y modifica (evidence: `backend/index.js`)
- Resultados de juegos → Cliente PostgreSQL: persiste partidas (evidence: `backend/index.js`)
- Cliente PostgreSQL → PostgreSQL: conecta (evidence: `backend/db.js`)
- Autenticación y pilotos → Servicio de correo: envía códigos
