erp-core/docs/08-epicas/EPIC-MGN-009-reports.md
rckrdmrd 4c4e27d9ba feat: Documentation and orchestration updates
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 05:35:20 -06:00

6.3 KiB

EPICA: EPIC-MGN-009 - Reportes

Metadata

Campo Valor
ID EPIC-MGN-009
Nombre Reportes y Analytics
Modulo reports
Fase Fase 2 - Core Business
Prioridad P1
Estado En Progreso
Story Points 26
Sprint(s) Sprint 8

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: COMPLETADO

  • Schema: reports (14-reports.sql)
  • Tablas: 12 (report_definitions, report_executions, report_schedules, report_recipients, schedule_executions, custom_reports, dashboards, dashboard_widgets, widget_queries, data_model_entities, data_model_fields, data_model_relationships)
  • ENUMs: 7 (report_type, execution_status, export_format, delivery_method, widget_type, param_type, filter_operator)
  • RLS Policies: 7 (tenant isolation en todas las tablas)

Backend: 🔄 EN PROGRESO (Sprint 8)

  • Modulo: reports
  • Services: DashboardsService (~500 LOC), ExportService (~350 LOC)
  • Controller: DashboardsController (~400 LOC)
  • Routes: 13 endpoints para dashboards
  • Services pendientes: ReportBuilderService (BE-024), SchedulerService (BE-025)
  • Tests: DashboardsService tests (TEST-003)

Frontend: PENDIENTE

  • 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)

  • Historias de usuario definidas
  • Criterios de aceptacion claros
  • Dependencias identificadas
  • Estimacion completada
  • Reportes base definidos (lista)
  • KPIs por modulo definidos
  • 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
2026-01-07 Implementado DDL 14-reports.sql (12 tablas, 7 ENUMs) Database-Agent
2026-01-07 Implementado DashboardsService, ExportService, 13 endpoints Backend-Agent
2026-01-07 Movido a Sprint 8 - Estado: En Progreso Orquestador

Creada por: Requirements-Analyst Fecha: 2025-12-05 Ultima actualizacion: 2026-01-07