# Despliegue
```mermaid
flowchart LR
browser["Navegador del usuario
HTTP"] --> angularDev["Angular dev server
ng serve
localhost:4200"]
angularDev -- "Proxy /api
HTTP" --> node["Node.js + Express
backend/server.js
localhost:3000"]
node -- "pg TCP" --> postgres[("PostgreSQL
localhost:5432
database: PGDATABASE")]
node -- "HTTPS fetch
solo sincronizacion" --> socrata["datos.gov.co Socrata API
www.datos.gov.co/resource/*.json"]
subgraph Frontend
angularDev
proxy["proxy.conf.json
/api -> http://localhost:3000"]
end
subgraph Backend
node
env["Variables de entorno
NODE_ENV, PORT, CORS_ORIGINS
PGHOST, PGUSER, PGDATABASE, PGPORT, PGPOOL_MAX
PGPASSWORD secreto
SOCRATA_APP_TOKEN secreto opcional
AUTH_TOKEN_SECRET secreto
AUTH_SESSION_HOURS
ADMIN_USERNAME, ADMIN_FULL_NAME
ADMIN_PASSWORD secreto"]
end
proxy --> node
env --> node
```
## Archivos analizados
- `semillero/angular.json`
- `semillero/proxy.conf.json`
- `semillero/package.json`
- `backend/package.json`
- `backend/server.js`
- `backend/src/server.js`
- `backend/src/app.js`
- `backend/src/config/env.js`
- `backend/src/db/pool.js`
- `backend/APIinvima.js`
- `backend/APIinvima.json`