erp-core/docs/08-epicas/EPIC-MGN-009-reports.md

179 lines
5.8 KiB
Markdown

# EPICA: EPIC-MGN-009 - Reportes
## Metadata
| Campo | Valor |
|-------|-------|
| **ID** | EPIC-MGN-009 |
| **Nombre** | Reportes y Analytics |
| **Modulo** | reports |
| **Fase** | Fase 3 - Extended |
| **Prioridad** | P2 |
| **Estado** | Backlog |
| **Story Points** | 26 |
| **Sprint(s)** | Sprint 14-15 |
---
## Descripcion
Sistema de reportes genericos que permite definir reportes personalizados con drag & drop, exportar a PDF/Excel, programar reportes automaticos por email, y crear dashboards con KPIs y graficas interactivas.
---
## Objetivo de Negocio
Proveer reportes que:
- Faciliten toma de decisiones basadas en datos
- Soporten multiples formatos de exportacion
- Permitan automatizacion con programacion
- Sean personalizables sin desarrollo
- Ofrezcan visualizacion interactiva
---
## Stakeholders
| Rol | Nombre/Equipo | Responsabilidad |
|-----|---------------|-----------------|
| Product Owner | Equipo Producto | Definicion de reportes base |
| Tech Lead | Equipo Backend | Arquitectura de query builder |
| Business Analysts | Operaciones | Definicion de KPIs |
| Gerentes | Usuarios finales | Consumo de dashboards |
---
## Historias de Usuario
| ID | Historia | Prioridad | SP | Estado |
|----|----------|-----------|-----|--------|
| US-MGN009-001 | Como usuario, quiero generar reportes predefinidos para analizar datos operativos | P0 | 5 | Backlog |
| US-MGN009-002 | Como usuario, quiero exportar reportes a PDF para compartir formalmente | P0 | 5 | Backlog |
| US-MGN009-003 | Como usuario, quiero exportar reportes a Excel para analisis detallado | P0 | 3 | Backlog |
| US-MGN009-004 | Como admin, quiero crear reportes personalizados para necesidades especificas | P1 | 8 | Backlog |
| US-MGN009-005 | Como usuario, quiero programar reportes automaticos para recibir informacion periodica | P1 | 5 | Backlog |
| US-MGN009-006 | Como gerente, quiero ver dashboards con KPIs para monitorear el negocio | P1 | 5 | Backlog |
**Total Story Points:** 31 SP (ajustado a 26)
---
## Criterios de Aceptacion de la Epica
**Funcionales:**
- [ ] Reportes predefinidos por modulo (ventas, compras, inventario, etc.)
- [ ] Exportacion PDF con formato profesional y logo de empresa
- [ ] Exportacion Excel con datos estructurados y formulas
- [ ] Constructor de reportes visual (campos, filtros, agrupaciones)
- [ ] Scheduler de reportes (diario, semanal, mensual) con envio por email
- [ ] Dashboards con graficas interactivas (Bar, Line, Pie, Gauge)
- [ ] Filtros dinamicos por fecha, entidad, etc.
**No Funcionales:**
- [ ] Performance: Reportes de hasta 10k registros en < 5s
- [ ] PDF: Generacion en background para reportes grandes
- [ ] Escalabilidad: Cache de reportes frecuentes
**Tecnicos:**
- [ ] Cobertura de tests > 80%
- [ ] Query builder seguro contra SQL injection
- [ ] Documentacion de reportes disponibles
---
## Dependencias
**Esta epica depende de:**
| Epica/Modulo | Estado | Bloqueante |
|--------------|--------|------------|
| EPIC-MGN-004 Tenants | Ready | Si |
| EPIC-MGN-008 Notifications | Backlog | Parcial (para envio programado) |
| Modulos de datos (Financial, Sales, etc.) | Variable | No (datos disponibles) |
**Esta epica bloquea:**
| Epica/Modulo | Razon |
|--------------|-------|
| Ninguno | Modulo complementario |
---
## Desglose Tecnico
**Database:**
- [ ] Schema: `core_reports`
- [ ] Tablas: 4 (report_definitions, report_schedules, report_history, dashboard_widgets)
- [ ] Funciones: Queries dinamicas con parametros
- [ ] RLS Policies: Si (reportes por tenant, dashboards por usuario/rol)
**Backend:**
- [ ] Modulo: `reports`
- [ ] Services: ReportBuilder, QueryExecutor, PdfGenerator, ExcelExporter, SchedulerService
- [ ] Entities: 4 (ReportDefinition, ReportSchedule, ReportHistory, DashboardWidget)
- [ ] Endpoints: 12 (CRUD reports, execute, export, schedule, dashboards)
- [ ] Jobs: ScheduledReportJob, ReportCleanupJob
- [ ] Tests: 25+
**Frontend:**
- [ ] Paginas: 5 (ReportsList, ReportViewer, ReportBuilder, ScheduleManager, Dashboards)
- [ ] Componentes: Charts (Bar, Line, Pie, Gauge), KPICard, FilterPanel, DragDropFields
- [ ] Stores: 1 (reportsStore)
- [ ] Libs: Chart.js o Recharts para graficas
---
## Riesgos
| Riesgo | Probabilidad | Impacto | Mitigacion |
|--------|--------------|---------|------------|
| Queries lentas | Alta | Alto | Indices optimizados, cache, timeout |
| PDF grande tarda mucho | Media | Medio | Generacion async, notificacion al terminar |
| SQL injection en query builder | Baja | Critico | Parametros escapados, whitelist de campos |
---
## Definition of Ready (DoR)
- [x] Historias de usuario definidas
- [x] Criterios de aceptacion claros
- [x] Dependencias identificadas
- [x] Estimacion completada
- [ ] Reportes base definidos (lista)
- [ ] KPIs por modulo definidos
- [x] Sin bloqueadores activos
## Definition of Done (DoD)
- [ ] Codigo implementado y revisado
- [ ] Tests pasando (unit, integration)
- [ ] Reportes predefinidos funcionando
- [ ] Exportacion PDF y Excel funcional
- [ ] Scheduler enviando emails
- [ ] Dashboard con al menos 3 graficas
- [ ] Documentacion actualizada
- [ ] Inventarios actualizados
- [ ] Demo realizada
- [ ] Product Owner aprobo
---
## Documentacion Relacionada
- Requerimientos: `docs/03-requerimientos/RF-reports/`
- User Stories: `docs/05-user-stories/mgn-009/`
- DDL Spec: `docs/04-modelado/database-design/DDL-SPEC-core_reports.md`
---
## Historial
| Fecha | Cambio | Autor |
|-------|--------|-------|
| 2025-12-05 | Creacion de epica | Requirements-Analyst |
| 2025-12-05 | Completado con Stakeholders, Riesgos, DoR/DoD | Requirements-Analyst |
---
**Creada por:** Requirements-Analyst
**Fecha:** 2025-12-05
**Ultima actualizacion:** 2025-12-05