first commit

This commit is contained in:
alexandrump
2026-02-09 01:02:53 +01:00
commit 82f3464565
90 changed files with 4788 additions and 0 deletions

251
PLAN.md Normal file
View File

@@ -0,0 +1,251 @@
# PLAN - Radar automático de datos públicos (gob-alert)
## Resumen
- **Idea**: Radar automático sobre datos.gob.es — detección, curación y normalización.
- **Stack elegido**: Nuxt (frontend), Nest (API), con turborepo monorepo.
- **Clientes objetivo**: consultoras/gestorías, pymes, universidades.
## Objetivo del MVP
- Indexar catálogo y guardar historial.
- Detectar nuevos/actualizados datasets.
- Normalización básica y perfiles de alerta.
- Dashboard simple y alertas por Telegram/email.
## MVP 30 días
### Semana 1 — Catálogo e historización
- Indexar `datos.gob.es` (API + SPARQL).
- Guardar metadatos y versiones en Postgres.
### Semana 2 — Clasificación y normalización
- Clasificadores (organismo, territorio, tema).
- Normalizadores CSV/JSON → esquema común.
### Semana 3 — Alertas y perfiles
- Perfiles no técnicos, motor de reglas, entrega (Telegram/email).
### Semana 4 — Dashboard y pilotos
- Dashboard: novedades, cambios, tendencias.
- Onboard 3 pilotos y recoger feedback.
## Arquitectura (2 mini-PCs)
- **Mini-PC 1 — Ingesta & procesamiento**: workers Python (cron/queues), ingesta API/SPARQL, normalización, Postgres.
- **Mini-PC 2 — Producto**: `Nest` API, `Nuxt` dashboard, alertas (Telegram/SMTP), backups.
- **Comunicación**: REST + colas ligeras (Redis opcional).
## Componentes clave
- Ingestor, Normalizador, Clasificador, Sistema de Alertas, Dashboard, Admin (planes/usuarios).
## Monetización
- Plan Básico 15€/mes, Pro 39€/mes, Empresa 99€/mes.
## KPIs iniciales
- Tiempo medio de detección, cobertura del catálogo, tasa de alertas útiles, conversión piloto→cliente.
## Roadmap 6 meses
- Integrar BOE y portales autonómicos, ML para clasificación, exportes e integraciones B2B.
---
Este documento complementa la `TODO` principal y sirve como referencia rápida para el MVP.
# PLAN — Radar automático de datos públicos
## Resumen
- Idea: Radar automático de datos públicos — alertas y normalización sobre datos.gob.es.
- Valor: Detección temprana + curación + normalización; entregas accionables, no datos crudos.
- Clientes objetivo: consultoras/gestorías, pymes, universidades/proyectos.
## Objetivo del MVP
- Indexar catálogo y guardar histórico.
- Detectar nuevos/actualizados datasets.
- Normalización básica y perfiles de alertas.
- Dashboard simple + alertas Telegram/email.
- Piloto con 3 clientes en 30 días.
## MVP 30 Días (entregables por semana)
- Semana 1 — Catálogo e historización: indexar datos.gob.es (API + SPARQL), almacenar metadatos y versiones en Postgres, endpoint interno para consultar catálogo.
- Semana 2 — Clasificación y normalización básica: clasificadores por organismo/territorio/tema, normalizadores CSV→esquema común (fechas, importes, provincias).
- Semana 3 — Alertas y perfiles: UI mínima para definir perfiles, motor de reglas, entrega por Telegram/email.
- Semana 4 — Dashboard y pilotos: dashboard con novedades/cambios/tendencias, onboarding 3 clientes piloto, ajustes según feedback.
## Arquitectura (2 mini-PCs)
- Mini-PC 1 — Ingesta y procesamiento: Python workers (cron/queues), consumidores API+SPARQL, normalizadores, Postgres (principal), SQLite auxiliar para caches.
- Mini-PC 2 — Producto y entrega: Nest (API pública), frontend (Nuxt) dashboard, servicios de alertas (Telegram bot, SMTP), backups y monitorización.
- Comunicación: API HTTP/REST + colas ligeras (Redis opcional).
- Stack recomendado: Nuxt (frontend), Nest (backend), Python para ingestion, Playwright solo si PDF scraping necesario.
## Componentes clave
- Ingestor: jobs programados, detección de cambios, versionado.
- Normalizador: mapeos configurables, transformaciones reutilizables.
- Clasificador: reglas + etiquetas (organismo, tema, territorio).
- Alerta: perfiles de usuario, reglas de entrega, deduplicación.
- Dashboard: novedades, cambios, tendencias, histórico.
- Admin: usuarios, planes, facturación, logs.
## Monetización
- Plan Básico 15€/mes
- Plan Pro 39€/mes
- Plan Empresa 99€/mes
## KPIs iniciales
- Tiempo medio hasta detectar un nuevo dataset.
- Cobertura del catálogo (% datasets indexados).
- Tasa de alertas útiles (feedback piloto).
- Conversiones piloto→pagos.
## Riesgos y mitigaciones
- Datos heterogéneos: empezar con CSV/JSON.
- Dependencia API: historizar metadatos y tener plan B.
- Escalabilidad en mini-PCs: diseñar componentes desacoplados.
## Roadmap 6 meses
- Integrar BOE y portales autonómicos.
- ML para clasificación automática de temas.
- Exportes y reportes automáticos.
- Integraciones B2B (SFTP, webhooks).
---
Archivo creado automáticamente: estructura inicial de monorepo sugerida en `README.md`.
## Estado de tareas (resumen)
- [x] Definir alcance y métricas
- [x] Diseñar arquitectura 2 mini-PCs
- [x] Indexar catálogo datos.gob.es
- [x] Normalización y enriquecimiento (en progreso)
- [x] Implementar motor de descubrimiento
- [x] Sistema de alertas profesionales
- [x] Panel MVP (Dashboard)
- [x] Auth, usuarios y planes (en progreso)
- [ ] Piloto con clientes
- [x] Monetización y política de precios
- [x] Monitorización, logs y backups
- [x] Documentación y landing
- [ ] Pruebas y despliegue en mini-PCs
- [ ] Iteración y roadmap 6 meses
### Tareas ya realizadas
- [x] Esqueleto Nest en `apps/api`
- [x] Dev `docker-compose.override.yml` (desarrollo)
- [x] Ingestor básico (parcial)
- [x] Normalización y enriquecimiento (parcial)
- [x] Versionado / Histórico
- [x] Programar ingesta periódica (scheduler)
- [x] Admin endpoints for scheduler (pause/resume)
- [x] Queue-based ingestion (Bull + Redis)
- [x] Secure admin endpoints and frontend integration (API key + JWT fallback)
``` # PLAN - Radar automático de datos públicos (gob-alert)
## Resumen
- **Idea**: Radar automático sobre datos.gob.es — detección, curación y normalización.
- **Stack elegido**: Nuxt (frontend), Nest (API), con turborepo monorepo.
- **Clientes objetivo**: consultoras/gestorías, pymes, universidades.
## Objetivo del MVP
- Indexar catálogo y guardar historial.
- Detectar nuevos/actualizados datasets.
- Normalización básica y perfiles de alerta.
- Dashboard simple y alertas por Telegram/email.
## MVP 30 días
### Semana 1 — Catálogo e historización
- Indexar `datos.gob.es` (API + SPARQL).
- Guardar metadatos y versiones en Postgres.
### Semana 2 — Clasificación y normalización
- Clasificadores (organismo, territorio, tema).
- Normalizadores CSV/JSON → esquema común.
### Semana 3 — Alertas y perfiles
- Perfiles no técnicos, motor de reglas, entrega (Telegram/email).
### Semana 4 — Dashboard y pilotos
- Dashboard: novedades, cambios, tendencias.
- Onboard 3 pilotos y recoger feedback.
## Arquitectura (2 mini-PCs)
- **Mini-PC 1 — Ingesta & procesamiento**: workers Python (cron/queues), ingesta API/SPARQL, normalización, Postgres.
- **Mini-PC 2 — Producto**: `Nest` API, `Nuxt` dashboard, alertas (Telegram/SMTP), backups.
- **Comunicación**: REST + colas ligeras (Redis opcional).
## Componentes clave
- Ingestor, Normalizador, Clasificador, Sistema de Alertas, Dashboard, Admin (planes/usuarios).
## Monetización
- Plan Básico 15€/mes, Pro 39€/mes, Empresa 99€/mes.
## KPIs iniciales
- Tiempo medio de detección, cobertura del catálogo, tasa de alertas útiles, conversión piloto→cliente.
## Roadmap 6 meses
- Integrar BOE y portales autonómicos, ML para clasificación, exportes e integraciones B2B.
---
Este documento complementa la `TODO` principal y sirve como referencia rápida para el MVP.
# PLAN — Radar automático de datos públicos
## Resumen
- Idea: Radar automático de datos públicos — alertas y normalización sobre datos.gob.es.
- Valor: Detección temprana + curación + normalización; entregas accionables, no datos crudos.
- Clientes objetivo: consultoras/gestorías, pymes, universidades/proyectos.
## Objetivo del MVP
- Indexar catálogo y guardar histórico.
- Detectar nuevos/actualizados datasets.
- Normalización básica y perfiles de alertas.
- Dashboard simple + alertas Telegram/email.
- Piloto con 3 clientes en 30 días.
## MVP 30 Días (entregables por semana)
- Semana 1 — Catálogo e historización: indexar datos.gob.es (API + SPARQL), almacenar metadatos y versiones en Postgres, endpoint interno para consultar catálogo.
- Semana 2 — Clasificación y normalización básica: clasificadores por organismo/territorio/tema, normalizadores CSV→esquema común (fechas, importes, provincias).
- Semana 3 — Alertas y perfiles: UI mínima para definir perfiles, motor de reglas, entrega por Telegram/email.
- Semana 4 — Dashboard y pilotos: dashboard con novedades/cambios/tendencias, onboarding 3 clientes piloto, ajustes según feedback.
## Arquitectura (2 mini-PCs)
- Mini-PC 1 — Ingesta y procesamiento: Python workers (cron/queues), consumidores API+SPARQL, normalizadores, Postgres (principal), SQLite auxiliar para caches.
- Mini-PC 2 — Producto y entrega: Nest (API pública), frontend (Nuxt) dashboard, servicios de alertas (Telegram bot, SMTP), backups y monitorización.
- Comunicación: API HTTP/REST + colas ligeras (Redis opcional).
- Stack recomendado: Nuxt (frontend), Nest (backend), Python para ingestion, Playwright solo si PDF scraping necesario.
## Componentes clave
- Ingestor: jobs programados, detección de cambios, versionado.
- Normalizador: mapeos configurables, transformaciones reutilizables.
- Clasificador: reglas + etiquetas (organismo, tema, territorio).
- Alerta: perfiles de usuario, reglas de entrega, deduplicación.
- Dashboard: novedades, cambios, tendencias, histórico.
- Admin: usuarios, planes, facturación, logs.
## Monetización
- Plan Básico 15€/mes
- Plan Pro 39€/mes
- Plan Empresa 99€/mes
## KPIs iniciales
- Tiempo medio hasta detectar un nuevo dataset.
- Cobertura del catálogo (% datasets indexados).
- Tasa de alertas útiles (feedback piloto).
- Conversiones piloto→pagos.
## Riesgos y mitigaciones
- Datos heterogéneos: empezar con CSV/JSON.
- Dependencia API: historizar metadatos y tener plan B.
- Escalabilidad en mini-PCs: diseñar componentes desacoplados.
## Roadmap 6 meses
- Integrar BOE y portales autonómicos.
- ML para clasificación automática de temas.
- Exportes y reportes automáticos.
- Integraciones B2B (SFTP, webhooks).
---
Archivo creado automáticamente: estructura inicial de monorepo sugerida en `README.md`.