1.7 KiB
1.7 KiB
Arquitectura general
flowchart LR
usuario["Usuario"] --> navegador["Navegador web"]
navegador --> angular["Frontend Angular<br/>semillero"]
angular -- "HTTP /api/auth/*<br/>HTTP /api/invima/*" --> proxy["Proxy Angular dev<br/>/api -> http://localhost:3000"]
proxy --> express["API REST Express<br/>backend/src/app.js"]
express --> auth["Rutas /api/auth<br/>login, me, logout"]
express --> invima["Rutas /api/invima<br/>datasets, categorias, filtros,<br/>sync, catalogo, export"]
auth --> authService["auth.service.js<br/>usuarios, sesiones, tokens"]
invima --> invimaService["invima/service.js<br/>catalogo, filtros, sincronizacion"]
invima --> syncJob["sync-job-manager.js<br/>estado de sincronizacion"]
authService --> postgres[("PostgreSQL<br/>app_users, app_sessions")]
invimaService --> postgres
invimaService -- "sincroniza datasets" --> socrata["datos.gov.co Socrata API<br/>https://www.datos.gov.co/resource/*.json"]
socrata --> invimaService
invimaService --> adapters["adapters.js<br/>normalizacion por dataset"]
adapters --> postgresInvima[("PostgreSQL<br/>invima_api_raw, invima_api_catalog")]
postgresInvima --- postgres
Archivos analizados
diagramas/frontend-clases.mmddiagramas/frontend-clases.svgsemillero/src/app/app.routes.tssemillero/src/app/app.config.tssemillero/proxy.conf.jsonbackend/src/app.jsbackend/src/server.jsbackend/src/routes/index.jsbackend/src/routes/auth.routes.jsbackend/src/routes/invima.routes.jsbackend/src/auth/auth.service.jsbackend/src/db/pool.jsbackend/src/config/env.jsbackend/invima/service.jsbackend/invima/adapters.jsbackend/invima/sync-job-manager.jsbackend/APIinvima.jsbackend/APIinvima.json