workspace-v1/projects/erp-construccion/docs/02-definicion-modulos/MAE-016-reportes/implementacion/TRACEABILITY.yml
rckrdmrd 66161b1566 feat: Workspace-v1 complete migration with NEXUS v3.4
Sistema NEXUS v3.4 migrado con:

Estructura principal:
- core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles)
- core/catalog: Catalogo de funcionalidades reutilizables
- shared/knowledge-base: Base de conocimiento compartida
- devtools/scripts: Herramientas de desarrollo
- control-plane/registries: Control de servicios y CI/CD
- orchestration/: Configuracion de orquestacion de agentes

Proyectos incluidos (11):
- gamilit (submodule -> GitHub)
- trading-platform (OrbiquanTIA)
- erp-suite con 5 verticales:
  - erp-core, construccion, vidrio-templado
  - mecanicas-diesel, retail, clinicas
- betting-analytics
- inmobiliaria-analytics
- platform_marketing_content
- pos-micro, erp-basico

Configuracion:
- .gitignore completo para Node.js/Python/Docker
- gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git)
- Sistema de puertos estandarizado (3005-3199)

Generated with NEXUS v3.4 Migration System
EPIC-010: Configuracion Git y Repositorios
2026-01-04 03:37:42 -06:00

817 lines
30 KiB
YAML

# TRACEABILITY.yml - MAE-016: Reportes y BI
# Matriz de trazabilidad: Documentacion -> Codigo
# Ubicacion: docs/02-definicion-modulos/MAE-016-reportes/implementacion/
epic_code: MAE-016
epic_name: Reportes y BI
phase: 2
phase_name: Modulos Avanzados
story_points: 28
status: rf_documented
reused_from_core: 75%
core_module: MGN-009
# =============================================================================
# DOCUMENTACION
# =============================================================================
documentation:
requirements:
- id: RF-BI-001
title: Dashboards Ejecutivos
file: ../requerimientos/RF-BI-001.md
priority: P0
story_points: 8
status: documented
reused_from: MGN-009/RF-REPORT-002
reuse_percentage: 70%
adaptations:
- "Dashboards especificos para construccion"
- "KPIs de obras: avance fisico, financiero, rentabilidad"
- "Widgets de alertas de desviaciones presupuestarias"
- "Graficos de flujo de caja por proyecto"
- "Indicadores de productividad de cuadrillas"
traces_to:
tables: [dashboards, dashboard_widgets, construction_kpis]
services: [DashboardsService, WidgetService, ConstructionKPIService]
endpoints: [GET /api/v1/bi/dashboards, POST /api/v1/bi/dashboards, GET /api/v1/bi/dashboards/:id/data]
- id: RF-BI-002
title: Reportes Operativos
file: ../requerimientos/RF-BI-002.md
priority: P0
story_points: 8
status: documented
reused_from: MGN-009/RF-REPORT-001
reuse_percentage: 80%
adaptations:
- "Reportes de avance fisico y financiero"
- "Reportes de consumo de recursos por obra"
- "Reportes de productividad de personal"
- "Reportes de estimaciones y facturacion"
- "Reportes de incidencias y bitacora"
- "Reportes de compras e inventarios"
traces_to:
tables: [report_definitions, report_executions, construction_report_templates]
services: [ReportsService, ExportService, ConstructionReportService]
endpoints: [GET /api/v1/bi/reports, POST /api/v1/bi/reports/:id/execute, GET /api/v1/bi/reports/:id/export/:format]
- id: RF-BI-003
title: Exportacion de Datos
file: ../requerimientos/RF-BI-003.md
priority: P1
story_points: 6
status: documented
reused_from: MGN-009/RF-REPORT-001
reuse_percentage: 90%
adaptations:
- "Exportacion a Excel con formato especifico de construccion"
- "Exportacion de estimaciones en formato CFE/SECODAM"
- "Exportacion de bitacora en PDF firmado"
- "Exportacion masiva de fotografias de obra"
traces_to:
tables: [export_templates, export_history]
services: [ExportService, PdfGeneratorService, ExcelGeneratorService]
endpoints: [POST /api/v1/bi/export, GET /api/v1/bi/export/:id/download, GET /api/v1/bi/export/templates]
- id: RF-BI-004
title: Indicadores KPI
file: ../requerimientos/RF-BI-004.md
priority: P0
story_points: 6
status: documented
reused_from: null
reuse_percentage: 0%
adaptations:
- "KPIs especificos de construccion (nuevo desarrollo)"
- "Indice de Desempeno de Costos (CPI)"
- "Indice de Desempeno del Cronograma (SPI)"
- "Rentabilidad por proyecto"
- "Productividad de mano de obra"
- "Tasa de consumo de materiales vs presupuestado"
- "Indice de calidad (NC/conformes)"
traces_to:
tables: [construction_kpis, kpi_definitions, kpi_history]
services: [KPIService, ConstructionMetricsService, EVMService]
endpoints: [GET /api/v1/bi/kpis, GET /api/v1/bi/kpis/:projectId, POST /api/v1/bi/kpis/calculate]
specifications: []
# Pendiente de documentacion
user_stories: []
# Pendiente de documentacion
# =============================================================================
# IMPLEMENTACION
# =============================================================================
implementation:
database:
schema: construction_bi
path: apps/database/ddl/schemas/construction_bi/
status: pending
tables:
# Tablas reutilizadas del core (MGN-009)
- name: dashboards
file: apps/database/ddl/schemas/core_reports/tables/dashboards.sql
status: reused
requirement: RF-BI-001
reused_from: MGN-009
adaptations:
- "Agregar campo construction_context JSONB"
- "Agregar campo project_filter UUID[]"
columns:
- {name: id, type: UUID, pk: true}
- {name: tenant_id, type: UUID, fk: tenants}
- {name: user_id, type: UUID, fk: users}
- {name: name, type: VARCHAR(255)}
- {name: description, type: TEXT}
- {name: layout, type: JSONB}
- {name: construction_context, type: JSONB, note: "Nuevo campo"}
- {name: project_filter, type: UUID[], note: "Nuevo campo"}
- {name: refresh_interval, type: INTEGER}
- {name: is_default, type: BOOLEAN, default: false}
- {name: is_shared, type: BOOLEAN, default: false}
- {name: shared_with, type: JSONB}
- {name: created_at, type: TIMESTAMPTZ}
- {name: updated_at, type: TIMESTAMPTZ}
- name: dashboard_widgets
file: apps/database/ddl/schemas/core_reports/tables/dashboard_widgets.sql
status: reused
requirement: RF-BI-001
reused_from: MGN-009
adaptations:
- "Agregar widget_types especificos de construccion"
- name: report_definitions
file: apps/database/ddl/schemas/core_reports/tables/report_definitions.sql
status: reused
requirement: RF-BI-002
reused_from: MGN-009
adaptations:
- "Agregar templates especificos de construccion"
- name: report_executions
file: apps/database/ddl/schemas/core_reports/tables/report_executions.sql
status: reused
requirement: RF-BI-002
reused_from: MGN-009
adaptations: []
# Tablas nuevas especificas de construccion
- name: construction_kpis
file: apps/database/ddl/schemas/construction_bi/tables/construction_kpis.sql
status: pending
requirement: RF-BI-004
columns:
- {name: id, type: UUID, pk: true}
- {name: tenant_id, type: UUID, fk: tenants}
- {name: project_id, type: UUID, fk: projects}
- {name: kpi_code, type: VARCHAR(50), note: "CPI, SPI, etc"}
- {name: kpi_name, type: VARCHAR(255)}
- {name: kpi_value, type: DECIMAL(10,4)}
- {name: target_value, type: DECIMAL(10,4)}
- {name: threshold_warning, type: DECIMAL(10,4)}
- {name: threshold_critical, type: DECIMAL(10,4)}
- {name: status, type: VARCHAR(20), note: "ok, warning, critical"}
- {name: calculation_data, type: JSONB}
- {name: period_start, type: DATE}
- {name: period_end, type: DATE}
- {name: calculated_at, type: TIMESTAMPTZ}
- {name: calculated_by, type: UUID, fk: users}
- name: kpi_definitions
file: apps/database/ddl/schemas/construction_bi/tables/kpi_definitions.sql
status: pending
requirement: RF-BI-004
columns:
- {name: id, type: UUID, pk: true}
- {name: code, type: VARCHAR(50), unique: true}
- {name: name, type: VARCHAR(255)}
- {name: description, type: TEXT}
- {name: formula, type: TEXT}
- {name: data_sources, type: JSONB}
- {name: calculation_frequency, type: VARCHAR(20)}
- {name: target_value, type: DECIMAL(10,4)}
- {name: threshold_warning, type: DECIMAL(10,4)}
- {name: threshold_critical, type: DECIMAL(10,4)}
- {name: unit, type: VARCHAR(50)}
- {name: is_active, type: BOOLEAN, default: true}
- {name: created_at, type: TIMESTAMPTZ}
- {name: updated_at, type: TIMESTAMPTZ}
- name: kpi_history
file: apps/database/ddl/schemas/construction_bi/tables/kpi_history.sql
status: pending
requirement: RF-BI-004
columns:
- {name: id, type: UUID, pk: true}
- {name: kpi_id, type: UUID, fk: construction_kpis}
- {name: project_id, type: UUID, fk: projects}
- {name: kpi_value, type: DECIMAL(10,4)}
- {name: status, type: VARCHAR(20)}
- {name: recorded_at, type: TIMESTAMPTZ}
- name: construction_report_templates
file: apps/database/ddl/schemas/construction_bi/tables/construction_report_templates.sql
status: pending
requirement: RF-BI-002
columns:
- {name: id, type: UUID, pk: true}
- {name: tenant_id, type: UUID, fk: tenants}
- {name: code, type: VARCHAR(100), unique: true}
- {name: name, type: VARCHAR(255)}
- {name: template_type, type: VARCHAR(50), note: "estimacion, bitacora, avance"}
- {name: template_file, type: TEXT, note: "Path o contenido del template"}
- {name: format, type: VARCHAR(20), note: "PDF, XLSX, DOCX"}
- {name: parameters, type: JSONB}
- {name: header_config, type: JSONB}
- {name: footer_config, type: JSONB}
- {name: is_system, type: BOOLEAN, default: false}
- {name: is_active, type: BOOLEAN, default: true}
- {name: created_at, type: TIMESTAMPTZ}
- {name: updated_at, type: TIMESTAMPTZ}
- name: export_templates
file: apps/database/ddl/schemas/construction_bi/tables/export_templates.sql
status: pending
requirement: RF-BI-003
columns:
- {name: id, type: UUID, pk: true}
- {name: tenant_id, type: UUID, fk: tenants}
- {name: name, type: VARCHAR(255)}
- {name: export_type, type: VARCHAR(50), note: "CFE, SECODAM, custom"}
- {name: format, type: VARCHAR(20), note: "XLSX, PDF"}
- {name: template_config, type: JSONB}
- {name: columns_mapping, type: JSONB}
- {name: is_active, type: BOOLEAN, default: true}
- {name: created_at, type: TIMESTAMPTZ}
- name: export_history
file: apps/database/ddl/schemas/construction_bi/tables/export_history.sql
status: pending
requirement: RF-BI-003
columns:
- {name: id, type: UUID, pk: true}
- {name: tenant_id, type: UUID, fk: tenants}
- {name: template_id, type: UUID, fk: export_templates, nullable: true}
- {name: user_id, type: UUID, fk: users}
- {name: entity_type, type: VARCHAR(50), note: "estimacion, bitacora, etc"}
- {name: entity_id, type: UUID}
- {name: file_name, type: VARCHAR(255)}
- {name: file_url, type: TEXT}
- {name: file_format, type: VARCHAR(20)}
- {name: file_size, type: BIGINT}
- {name: status, type: VARCHAR(20)}
- {name: error, type: TEXT, nullable: true}
- {name: created_at, type: TIMESTAMPTZ}
backend:
module: construction-bi
path: apps/backend/src/modules/construction-bi/
framework: NestJS
status: pending
entities:
- name: ConstructionKPI
file: apps/backend/src/modules/construction-bi/entities/construction-kpi.entity.ts
status: pending
requirement: RF-BI-004
- name: KPIDefinition
file: apps/backend/src/modules/construction-bi/entities/kpi-definition.entity.ts
status: pending
requirement: RF-BI-004
- name: KPIHistory
file: apps/backend/src/modules/construction-bi/entities/kpi-history.entity.ts
status: pending
requirement: RF-BI-004
- name: ConstructionReportTemplate
file: apps/backend/src/modules/construction-bi/entities/construction-report-template.entity.ts
status: pending
requirement: RF-BI-002
- name: ExportTemplate
file: apps/backend/src/modules/construction-bi/entities/export-template.entity.ts
status: pending
requirement: RF-BI-003
services:
# Servicios reutilizados del core (adaptados)
- name: DashboardsService
file: apps/backend/src/modules/construction-bi/dashboards.service.ts
status: pending
requirement: RF-BI-001
reused_from: MGN-009/DashboardsService
reuse_percentage: 70%
adaptations:
- "Agregar metodos para dashboards de construccion"
- "Integracion con KPIs de obra"
methods:
- {name: create, description: Crear dashboard}
- {name: update, description: Actualizar dashboard}
- {name: getData, description: Obtener datos de widgets}
- {name: getConstructionDashboard, description: Dashboard especifico de construccion}
- {name: getProjectKPIs, description: Obtener KPIs de proyecto}
- name: ReportsService
file: apps/backend/src/modules/construction-bi/reports.service.ts
status: pending
requirement: RF-BI-002
reused_from: MGN-009/ReportsService
reuse_percentage: 80%
adaptations:
- "Agregar reportes especificos de construccion"
methods:
- {name: execute, description: Ejecutar reporte}
- {name: getAvailable, description: Listar reportes disponibles}
- {name: getExecution, description: Obtener resultado de ejecucion}
- {name: executeConstructionReport, description: Ejecutar reporte de construccion}
- {name: getEstimacionReport, description: Reporte de estimacion}
- {name: getBitacoraReport, description: Reporte de bitacora}
- {name: getAvanceFisicoReport, description: Reporte de avance fisico}
- name: ExportService
file: apps/backend/src/modules/construction-bi/export.service.ts
status: pending
requirement: RF-BI-003
reused_from: MGN-009/ExportService
reuse_percentage: 85%
adaptations:
- "Formatos especificos de construccion"
methods:
- {name: toPdf, description: Exportar a PDF}
- {name: toExcel, description: Exportar a Excel}
- {name: toCsv, description: Exportar a CSV}
- {name: exportEstimacionCFE, description: Exportar estimacion formato CFE}
- {name: exportBitacoraFirmada, description: Exportar bitacora con firma digital}
- {name: exportFotosObra, description: Exportacion masiva de fotos}
# Servicios nuevos especificos
- name: KPIService
file: apps/backend/src/modules/construction-bi/kpi.service.ts
status: pending
requirement: RF-BI-004
methods:
- {name: calculateKPI, description: Calcular KPI especifico}
- {name: calculateAllProjectKPIs, description: Calcular todos los KPIs de un proyecto}
- {name: getKPIHistory, description: Obtener historial de KPI}
- {name: getKPIDefinitions, description: Listar definiciones de KPIs}
- {name: createKPIDefinition, description: Crear definicion de KPI}
- name: ConstructionMetricsService
file: apps/backend/src/modules/construction-bi/construction-metrics.service.ts
status: pending
requirement: RF-BI-004
methods:
- {name: getProjectMetrics, description: Obtener metricas de proyecto}
- {name: getResourceProductivity, description: Productividad de recursos}
- {name: getMaterialConsumption, description: Consumo de materiales}
- {name: getLaborProductivity, description: Productividad de mano de obra}
- name: EVMService
file: apps/backend/src/modules/construction-bi/evm.service.ts
status: pending
requirement: RF-BI-004
note: "Earned Value Management - Nuevo servicio"
methods:
- {name: calculateCPI, description: Calcular Cost Performance Index}
- {name: calculateSPI, description: Calcular Schedule Performance Index}
- {name: calculateEAC, description: Calcular Estimate at Completion}
- {name: calculateETC, description: Calcular Estimate to Complete}
- {name: getEVMReport, description: Reporte completo de EVM}
- name: ConstructionReportService
file: apps/backend/src/modules/construction-bi/construction-report.service.ts
status: pending
requirement: RF-BI-002
methods:
- {name: getReportTemplates, description: Listar templates de reportes}
- {name: generateFromTemplate, description: Generar reporte desde template}
- {name: createCustomTemplate, description: Crear template personalizado}
- name: PdfGeneratorService
file: apps/backend/src/modules/construction-bi/pdf-generator.service.ts
status: pending
requirement: RF-BI-003
methods:
- {name: generatePdf, description: Generar PDF generico}
- {name: generateEstimacionPdf, description: Generar PDF de estimacion}
- {name: generateBitacoraPdf, description: Generar PDF de bitacora}
- {name: addDigitalSignature, description: Agregar firma digital al PDF}
- name: ExcelGeneratorService
file: apps/backend/src/modules/construction-bi/excel-generator.service.ts
status: pending
requirement: RF-BI-003
methods:
- {name: generateExcel, description: Generar Excel generico}
- {name: generateEstimacionExcel, description: Generar Excel de estimacion}
- {name: applyTemplate, description: Aplicar template de Excel}
controllers:
- name: ConstructionBIController
file: apps/backend/src/modules/construction-bi/construction-bi.controller.ts
status: pending
endpoints:
# Dashboards
- method: GET
path: /api/v1/bi/dashboards
description: Listar dashboards
requirement: RF-BI-001
- method: POST
path: /api/v1/bi/dashboards
description: Crear dashboard
requirement: RF-BI-001
- method: GET
path: /api/v1/bi/dashboards/:id/data
description: Obtener datos de dashboard
requirement: RF-BI-001
- method: GET
path: /api/v1/bi/dashboards/construction/:projectId
description: Dashboard de construccion por proyecto
requirement: RF-BI-001
# Reportes
- method: GET
path: /api/v1/bi/reports
description: Listar reportes disponibles
requirement: RF-BI-002
- method: POST
path: /api/v1/bi/reports/:id/execute
description: Ejecutar reporte
requirement: RF-BI-002
- method: GET
path: /api/v1/bi/reports/:id/export/:format
description: Exportar reporte
requirement: RF-BI-002
- method: GET
path: /api/v1/bi/reports/estimacion/:estimacionId
description: Reporte de estimacion
requirement: RF-BI-002
- method: GET
path: /api/v1/bi/reports/bitacora/:obraId
description: Reporte de bitacora
requirement: RF-BI-002
- method: GET
path: /api/v1/bi/reports/avance-fisico/:obraId
description: Reporte de avance fisico
requirement: RF-BI-002
# Exportacion
- method: POST
path: /api/v1/bi/export
description: Crear exportacion
requirement: RF-BI-003
- method: GET
path: /api/v1/bi/export/:id/download
description: Descargar archivo exportado
requirement: RF-BI-003
- method: GET
path: /api/v1/bi/export/templates
description: Listar templates de exportacion
requirement: RF-BI-003
- method: POST
path: /api/v1/bi/export/estimacion-cfe
description: Exportar estimacion formato CFE
requirement: RF-BI-003
- method: POST
path: /api/v1/bi/export/bitacora-firmada
description: Exportar bitacora con firma digital
requirement: RF-BI-003
# KPIs
- method: GET
path: /api/v1/bi/kpis
description: Listar definiciones de KPIs
requirement: RF-BI-004
- method: GET
path: /api/v1/bi/kpis/:projectId
description: Obtener KPIs de proyecto
requirement: RF-BI-004
- method: POST
path: /api/v1/bi/kpis/calculate
description: Calcular KPIs de proyecto
requirement: RF-BI-004
- method: GET
path: /api/v1/bi/kpis/:projectId/history
description: Historial de KPIs
requirement: RF-BI-004
- method: GET
path: /api/v1/bi/kpis/:projectId/evm
description: Earned Value Management
requirement: RF-BI-004
frontend:
module: construction-bi
path: apps/frontend/src/features/construction-bi/
framework: React
status: pending
components:
# Dashboards
- name: DashboardBuilder
file: apps/frontend/src/features/construction-bi/components/DashboardBuilder.tsx
requirement: RF-BI-001
reused_from: MGN-009
reuse_percentage: 60%
- name: ConstructionDashboard
file: apps/frontend/src/features/construction-bi/components/ConstructionDashboard.tsx
requirement: RF-BI-001
note: "Nuevo componente especifico"
- name: KPIWidget
file: apps/frontend/src/features/construction-bi/components/KPIWidget.tsx
requirement: RF-BI-001
note: "Widget para mostrar KPIs"
- name: ProjectMetricsWidget
file: apps/frontend/src/features/construction-bi/components/ProjectMetricsWidget.tsx
requirement: RF-BI-001
- name: CashFlowWidget
file: apps/frontend/src/features/construction-bi/components/CashFlowWidget.tsx
requirement: RF-BI-001
# Reportes
- name: ReportGenerator
file: apps/frontend/src/features/construction-bi/components/ReportGenerator.tsx
requirement: RF-BI-002
reused_from: MGN-009
reuse_percentage: 75%
- name: ReportTemplateSelector
file: apps/frontend/src/features/construction-bi/components/ReportTemplateSelector.tsx
requirement: RF-BI-002
- name: EstimacionReportViewer
file: apps/frontend/src/features/construction-bi/components/EstimacionReportViewer.tsx
requirement: RF-BI-002
- name: BitacoraReportViewer
file: apps/frontend/src/features/construction-bi/components/BitacoraReportViewer.tsx
requirement: RF-BI-002
# Exportacion
- name: ExportDialog
file: apps/frontend/src/features/construction-bi/components/ExportDialog.tsx
requirement: RF-BI-003
reused_from: MGN-009
reuse_percentage: 80%
- name: ExportTemplateManager
file: apps/frontend/src/features/construction-bi/components/ExportTemplateManager.tsx
requirement: RF-BI-003
- name: ExportHistory
file: apps/frontend/src/features/construction-bi/components/ExportHistory.tsx
requirement: RF-BI-003
# KPIs
- name: KPIDashboard
file: apps/frontend/src/features/construction-bi/components/KPIDashboard.tsx
requirement: RF-BI-004
- name: KPIChart
file: apps/frontend/src/features/construction-bi/components/KPIChart.tsx
requirement: RF-BI-004
- name: EVMChart
file: apps/frontend/src/features/construction-bi/components/EVMChart.tsx
requirement: RF-BI-004
- name: KPIHistoryChart
file: apps/frontend/src/features/construction-bi/components/KPIHistoryChart.tsx
requirement: RF-BI-004
- name: KPIDefinitionManager
file: apps/frontend/src/features/construction-bi/components/KPIDefinitionManager.tsx
requirement: RF-BI-004
# =============================================================================
# DEPENDENCIAS
# =============================================================================
dependencies:
depends_on:
# Dependencias del core
- module: MGN-001
type: hard
reason: Autenticacion requerida
- module: MGN-004
type: hard
reason: Aislamiento por tenant
- module: MGN-009
type: hard
reason: Reutilizacion de infraestructura de reportes (75%)
# Dependencias de verticales construccion
- module: MAI-001
type: hard
reason: Datos de proyectos de construccion
- module: MAI-002
type: hard
reason: Datos de planificacion y presupuestos
- module: MAI-004
type: hard
reason: Datos de compras e inventarios
- module: MAI-005
type: hard
reason: Datos de avances fisicos y financieros
required_by: []
# =============================================================================
# INTEGRACIONES
# =============================================================================
integrations:
core_modules:
- code: MGN-009
name: Reports
reuse_percentage: 75%
components_reused:
- DashboardsService
- ReportsService
- ExportService
- Dashboard UI components
adaptations:
- "Dashboards especificos de construccion"
- "Reportes especificos de obra"
- "Templates de exportacion CFE/SECODAM"
construction_modules:
- code: MAI-001
name: Fundamentos
integration: Datos de proyectos y usuarios
- code: MAI-002
name: Planificacion de Obras
integration: Presupuestos, cronogramas, WBS
- code: MAI-004
name: Compras e Inventarios
integration: Datos de consumo de materiales
- code: MAI-005
name: Control de Obra
integration: Avances fisicos, financieros, bitacora
# =============================================================================
# METRICAS
# =============================================================================
metrics:
story_points:
estimated: 28
actual: null
saved_by_reuse: 12
note: "75% reutilizado de MGN-009 ahorra ~12 SP"
reuse_metrics:
from_core: 75%
core_module: MGN-009
components_reused: 8
components_new: 7
components_adapted: 5
lines_reused: ~2500
lines_new: ~1200
documentation:
requirements: 4
specifications: 0
user_stories: 0
files:
database: 8
backend: 15
frontend: 15
total: 38
# =============================================================================
# REUTILIZACION DE MGN-009
# =============================================================================
reuse_details:
database:
reused_tables:
- name: dashboards
percentage: 85%
adaptations: ["Agregar campos de construccion"]
- name: dashboard_widgets
percentage: 90%
adaptations: ["Widgets especificos"]
- name: report_definitions
percentage: 80%
adaptations: ["Templates de construccion"]
- name: report_executions
percentage: 100%
adaptations: []
new_tables:
- construction_kpis
- kpi_definitions
- kpi_history
- construction_report_templates
- export_templates
- export_history
backend:
reused_services:
- name: DashboardsService
percentage: 70%
adaptations: ["Metodos especificos de construccion"]
- name: ReportsService
percentage: 80%
adaptations: ["Reportes de obra"]
- name: ExportService
percentage: 85%
adaptations: ["Formatos CFE/SECODAM"]
new_services:
- KPIService
- ConstructionMetricsService
- EVMService
- ConstructionReportService
- PdfGeneratorService
- ExcelGeneratorService
frontend:
reused_components:
- name: DashboardBuilder
percentage: 60%
- name: ReportGenerator
percentage: 75%
- name: ExportDialog
percentage: 80%
new_components:
- ConstructionDashboard
- KPIDashboard
- EVMChart
- EstimacionReportViewer
- BitacoraReportViewer
- KPIWidget
- ProjectMetricsWidget
- CashFlowWidget
# =============================================================================
# HISTORIAL
# =============================================================================
history:
- date: "2025-12-06"
action: "Creacion de estructura MAE-016"
author: Requirements-Analyst
changes:
- "Creacion de TRACEABILITY.yml"
- "Definicion de estructura base"
- "Documentacion de reutilizacion de MGN-009 (75%)"
- date: "2025-12-06"
action: "Documentacion de RF"
author: Requirements-Analyst
changes:
- "RF-BI-001: Dashboards Ejecutivos"
- "RF-BI-002: Reportes Operativos"
- "RF-BI-003: Exportacion de Datos"
- "RF-BI-004: Indicadores KPI"
- "Actualizacion de trazabilidad RF -> implementacion"
- "Documentacion de adaptaciones vs MGN-009"
# =============================================================================
# NOTAS DE IMPLEMENTACION
# =============================================================================
notes:
- "75% de reutilizacion de MGN-009 reduce significativamente el esfuerzo"
- "KPIs especificos de construccion (CPI, SPI, EVM) requieren desarrollo nuevo"
- "Formatos de exportacion CFE/SECODAM son requerimientos especificos de Mexico"
- "Firma digital en bitacora requiere integracion con certificados digitales"
- "Dashboard ejecutivo debe mostrar metricas en tiempo real"
- "Considerar integracion con Power BI / Tableau para analisis avanzado"
- "Implementar cache de KPIs para mejorar rendimiento"
- "Sistema de alertas automaticas cuando KPIs caen fuera de umbrales"
- "Reportes deben soportar multiples idiomas (ES/EN)"
- "Exportacion de fotos debe incluir metadata EXIF (ubicacion, fecha)"