# MAI-006: Control de Calidad en Construcción

**ID:** MAI-006
**Fase:** 1 - Alcance Inicial
**Presupuesto:** $28,000 MXN
**Story Points:** 45 SP
**Prioridad:** P1
**Estado:** En documentación

---

## Resumen Ejecutivo

Módulo vertical especializado para el control de calidad en proyectos de construcción, que permite realizar inspecciones sistemáticas, gestionar no conformidades, ejecutar pruebas de laboratorio y administrar certificaciones de materiales y procesos constructivos.

### Problema que Resuelve

Las constructoras enfrentan desafíos críticos en el control de calidad:
- **Inspecciones manuales:** Checklists en papel, pérdida de información, sin evidencias fotográficas
- **No conformidades:** Falta de seguimiento, correcciones no verificadas, repetición de defectos
- **Pruebas de laboratorio:** Resultados dispersos, certificados extraviados, incumplimiento de normas
- **Auditorías:** Sin trazabilidad completa, dificultad para comprobar calidad ante organismos reguladores
- **Integración deficiente:** Datos de calidad desconectados del avance de obra y presupuestos

**Con este módulo:** Control sistemático de calidad, evidencias digitales georreferenciadas, trazabilidad completa, cumplimiento normativo y mejora continua documentada.

---

## Alcance Funcional

### 1. Inspecciones de Calidad

- **Checklists dinámicos** configurables por etapa constructiva
- Templates predefinidos según normativa (NOM, NMX, códigos de construcción)
- Inspecciones con evidencias fotográficas georreferenciadas
- Criterios de aceptación/rechazo por ítem
- Calificación cuantitativa (scores) y cualitativa
- Firmas digitales de inspector y responsable
- Reportes PDF con evidencias

### 2. No Conformidades (NC)

- Registro de defectos y desviaciones de calidad
- Clasificación por severidad: Menor, Mayor, Crítica
- Vinculación a inspecciones y partidas afectadas
- Asignación de responsables para corrección
- Acciones correctivas y preventivas (CAPA)
- Verificación de cierre con evidencias
- Análisis de causas raíz (RCA)
- Estadísticas de NC por proyecto/contratista/concepto

### 3. Pruebas de Laboratorio

- Registro de muestreos de materiales (concreto, acero, suelos)
- Seguimiento de especímenes en laboratorio
- Carga de resultados de ensayos
- Comparación automática vs especificaciones
- Certificados de laboratorios acreditados (EMA)
- Trazabilidad de lotes de materiales
- Alertas por resultados fuera de especificación

### 4. Certificaciones y Cumplimiento

- Gestión de certificados de materiales
- Cumplimiento de normativa aplicable (NOM, ASTM, ACI)
- Validación de proveedores certificados
- Documentación para auditorías
- Bitácora de cumplimiento normativo
- Reportes de conformidad

### 5. Integración con Apps Móviles

- **MOB-003 (App Supervisor):** Captura de inspecciones en campo
- **MOB-004 (App Capataz):** Registro de pruebas y evidencias
- Trabajo offline con sincronización automática
- Fotos con GPS y timestamp embebido
- Firmas digitales desde dispositivos móviles

---

## Reutilización del Core ERP

**Porcentaje de Reutilización:** 0% - Módulo Vertical Específico

Este módulo es completamente específico de la vertical de construcción y no reutiliza funcionalidades del ERP Core genérico. Sin embargo, sí consume servicios base del core:

### Servicios del Core Utilizados
- **MGN-001 (Usuarios):** Autenticación y permisos de inspectores
- **MGN-002 (RBAC):** Control de acceso por roles (inspector, residente, director técnico)
- **MGN-003 (Tenants):** Aislamiento multi-empresa
- **MGN-005 (Catálogos):** Catálogo de normas, tipos de pruebas, severidades
- **MGN-007 (Auditoría):** Trazabilidad de cambios en inspecciones
- **MGN-008 (Notificaciones):** Alertas de NC críticas y resultados fuera de spec

### Justificación de No Reutilización
- Procesos de control de calidad únicos de construcción
- Normativa específica (NOM-008-SCFI, NMX-C-414, etc.)
- Flujos especializados (CAPA, RCA, certificaciones de materiales)
- Integración directa con laboratorios de ensayos
- Georreferenciación de inspecciones por ubicación en obra

---

## Requerimientos Funcionales

### Lista de RF del Módulo

| ID | Nombre | Descripción | Prioridad | SP |
|----|--------|-------------|-----------|-----|
| **RF-CAL-001** | Inspecciones de calidad | Sistema de checklists dinámicos y capturas en campo | P0 | 13 |
| **RF-CAL-002** | No conformidades y CAPA | Gestión de defectos y acciones correctivas | P0 | 13 |
| **RF-CAL-003** | Pruebas de laboratorio | Control de ensayos y certificados | P1 | 10 |
| **RF-CAL-004** | Certificaciones y cumplimiento | Gestión de certificados y normativa | P1 | 9 |

**Total Story Points:** 45 SP

### Referencias a Documentación

- [RF-CAL-001: Inspecciones de calidad](./requerimientos/RF-CAL-001-inspecciones-calidad.md)
- [RF-CAL-002: No conformidades y CAPA](./requerimientos/RF-CAL-002-no-conformidades.md)
- [RF-CAL-003: Pruebas de laboratorio](./requerimientos/RF-CAL-003-pruebas-laboratorio.md)
- [RF-CAL-004: Certificaciones y cumplimiento](./requerimientos/RF-CAL-004-certificaciones.md)

---

## Integración con Apps Móviles

### MOB-003: App Supervisor de Obra

**Perfil:** Residente o supervisor de obra
**Funcionalidades para Calidad:**

| Funcionalidad | Descripción | Beneficio |
|---------------|-------------|-----------|
| Captura de inspecciones | Ejecutar checklists desde campo | Inspecciones en tiempo real sin papel |
| Fotos geoetiquetadas | Evidencias con GPS y timestamp | Trazabilidad completa de ubicación |
| Registro de NC | Reportar defectos inmediatos | Correcciones oportunas |
| Firmas digitales | Validación de responsables | Cumplimiento normativo |
| Modo offline | Trabajo sin conexión | Inspecciones sin depender de cobertura |

**Flujo de Trabajo:**
```
1. Inspector selecciona proyecto y ubicación (manzana, lote, etapa)
2. Elige checklist aplicable (ej: "Cimentación - Zapatas")
3. Sistema carga ítems del checklist (30+ verificaciones)
4. Inspector verifica cada ítem: ✓ Conforme / ✗ No conforme
5. Si no conforme: Toma foto, describe defecto, clasifica severidad
6. Sistema genera NC automáticamente vinculada a partida
7. Al completar checklist: Firma digital del inspector
8. Genera reporte PDF con evidencias
9. Sincroniza con servidor cuando hay conexión
```

### MOB-004: App Capataz / Jefe de Cuadrilla

**Perfil:** Capataz o jefe de cuadrilla
**Funcionalidades para Calidad:**

| Funcionalidad | Descripción | Beneficio |
|---------------|-------------|-----------|
| Registro de muestreos | Documentar toma de especímenes | Trazabilidad de materiales |
| Validación de materiales | Verificar certificados en obra | Uso de materiales conformes |
| Auto-inspección de cuadrilla | Checklist básico antes de entrega | Reducción de NC |
| Evidencias fotográficas | Fotos del proceso constructivo | Respaldo de calidad del trabajo |

**Flujo de Trabajo:**
```
1. Capataz registra lote de material (concreto, acero)
2. Documenta especímenes tomados (cilindros, varillas)
3. Toma foto del lote y etiquetas
4. Sistema asocia a orden de compra y partida
5. Al recibir resultados de laboratorio, se vinculan automáticamente
6. Notificación si resultados no cumplen especificación
```

---

## Dependencias con Otros Módulos

### Dependencias Directas

| Módulo | Tipo | Relación | Datos Compartidos |
|--------|------|----------|-------------------|
| **MAI-002** Proyectos y Estructura | Entrada | Inspecciones por proyecto/manzana/lote | Estructura de proyecto, ubicaciones |
| **MAI-003** Presupuestos y Costos | Entrada | Vinculación de NC a partidas | Catálogo de conceptos, presupuesto |
| **MAI-004** Compras e Inventarios | Entrada | Validación de materiales | Órdenes de compra, lotes de materiales |
| **MAI-005** Control de Obra | Bidireccional | Inspecciones vinculadas a avances | Avances de obra, evidencias fotográficas |
| **MAI-007** Seguridad Industrial | Salida | NC de seguridad | Incidentes, medidas preventivas |
| **MAI-011** INFONAVIT Cumplimiento | Salida | Evidencias para auditorías | Inspecciones, certificados, trazabilidad |

### Dependencias con Core ERP

| Módulo Core | Relación | Uso |
|-------------|----------|-----|
| **MGN-001** Usuarios | Consume | Autenticación de inspectores |
| **MGN-002** RBAC | Consume | Permisos por rol (inspector, residente, director técnico) |
| **MGN-003** Tenants | Consume | Aislamiento multi-empresa |
| **MGN-005** Catálogos | Consume | Catálogo de normas, tipos de pruebas, severidades NC |
| **MGN-007** Auditoría | Consume | Trazabilidad de cambios en inspecciones |
| **MGN-008** Notificaciones | Consume | Alertas de NC críticas, resultados fuera de spec |

---

## Diagrama de Arquitectura

### Arquitectura de Componentes

```
┌─────────────────────────────────────────────────────────────────┐
│                         Frontend React                          │
├─────────────────────────────────────────────────────────────────┤
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐          │
│  │ Inspecciones │  │      NC      │  │  Laboratorio │          │
│  │   Component  │  │  Component   │  │   Component  │          │
│  └──────────────┘  └──────────────┘  └──────────────┘          │
│                                                                  │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐          │
│  │ Certificados │  │   Reportes   │  │  Dashboards  │          │
│  │   Component  │  │  Component   │  │   Component  │          │
│  └──────────────┘  └──────────────┘  └──────────────┘          │
└─────────────────────────────────────────────────────────────────┘
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                      Backend API (Express)                       │
├─────────────────────────────────────────────────────────────────┤
│  /api/quality/                                                   │
│    ├── /inspections      - CRUD inspecciones                    │
│    ├── /checklists       - Templates de inspección              │
│    ├── /non-conformities - Gestión de NC                        │
│    ├── /laboratory       - Pruebas y resultados                 │
│    ├── /certifications   - Certificados de materiales           │
│    └── /reports          - Reportes y estadísticas              │
└─────────────────────────────────────────────────────────────────┘
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                    Base de Datos PostgreSQL                      │
├─────────────────────────────────────────────────────────────────┤
│  Schema: quality                                                 │
│                                                                  │
│  ┌────────────────────────────────────────────────────────┐    │
│  │ Tablas Principales:                                     │    │
│  │                                                         │    │
│  │  • checklists              - Templates de inspección   │    │
│  │  • checklist_items         - Ítems por checklist       │    │
│  │  • inspections             - Inspecciones realizadas   │    │
│  │  • inspection_results      - Resultados por ítem       │    │
│  │  • non_conformities        - NC detectadas             │    │
│  │  • corrective_actions      - Acciones correctivas      │    │
│  │  • laboratory_tests        - Ensayos de laboratorio    │    │
│  │  • test_specimens          - Especímenes/muestras      │    │
│  │  • certifications          - Certificados materiales   │    │
│  │  • quality_standards       - Normativa aplicable       │    │
│  │  • quality_attachments     - Evidencias fotográficas   │    │
│  └────────────────────────────────────────────────────────┘    │
└─────────────────────────────────────────────────────────────────┘
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                       Apps Móviles                               │
├─────────────────────────────────────────────────────────────────┤
│  ┌──────────────────────┐     ┌──────────────────────┐         │
│  │  MOB-003: Supervisor │     │  MOB-004: Capataz    │         │
│  │                      │     │                      │         │
│  │  • Inspecciones      │     │  • Muestreos         │         │
│  │  • Registro de NC    │     │  • Validación        │         │
│  │  • Fotos GPS         │     │  • Auto-inspección   │         │
│  │  • Firmas digitales  │     │  • Evidencias        │         │
│  │  • Modo offline      │     │  • Modo offline      │         │
│  └──────────────────────┘     └──────────────────────┘         │
└─────────────────────────────────────────────────────────────────┘
```

### Flujo de Datos - Inspección de Calidad

```
┌─────────────┐
│ App MOB-003 │  Inspector ejecuta checklist en campo
│  Supervisor │  con evidencias fotográficas GPS
└──────┬──────┘
       │
       ▼
┌──────────────────────────────────────────────────┐
│ API /inspections                                  │
│                                                   │
│ 1. Valida checklist aplicable                    │
│ 2. Registra resultados por ítem                  │
│ 3. Crea NC automáticamente si hay no conformes   │
│ 4. Vincula evidencias fotográficas               │
│ 5. Calcula score de calidad                      │
│ 6. Genera reporte PDF                            │
└──────┬───────────────────────────────────────────┘
       │
       ▼
┌──────────────────────────────────────────────────┐
│ DB: quality.inspections                          │
│     quality.inspection_results                   │
│     quality.non_conformities                     │
│     quality.quality_attachments                  │
└──────┬───────────────────────────────────────────┘
       │
       ▼
┌──────────────────────────────────────────────────┐
│ Integraciones:                                   │
│                                                  │
│ • MAI-005: Vincula a avance de obra              │
│ • MAI-011: Provee evidencias para INFONAVIT      │
│ • MGN-008: Notifica NC críticas                  │
└──────────────────────────────────────────────────┘
```

---

## Stack Tecnológico

### Backend

| Componente | Tecnología | Versión | Justificación |
|------------|------------|---------|---------------|
| **Runtime** | Node.js | 20+ LTS | Soporte hasta 2026, async I/O para procesamiento |
| **Framework** | Express | 4.18+ | Probado en producción, ecosistema maduro |
| **Lenguaje** | TypeScript | 5.3+ | Type safety, reduce bugs 40% |
| **ORM** | Prisma | 5.x | Type-safe queries, migrations automáticas |
| **Validación** | Zod | 3.x | Runtime type validation |

### Frontend

| Componente | Tecnología | Versión | Justificación |
|------------|------------|---------|---------------|
| **Framework** | React | 18+ | Virtual DOM, ecosistema maduro |
| **Build Tool** | Vite | 5+ | HMR rápido (<1s), builds optimizados |
| **Lenguaje** | TypeScript | 5.3+ | Consistencia con backend |
| **State** | Zustand | 4.x | Simple, TypeScript-first |
| **Forms** | React Hook Form | 7.x | Performance, validación integrada |
| **UI Library** | Ant Design | 5.x | Componentes empresariales, accesibilidad |
| **Charts** | Recharts | 2.x | Gráficas de KPIs de calidad |

### Base de Datos

| Componente | Tecnología | Versión | Justificación |
|------------|------------|---------|---------------|
| **RDBMS** | PostgreSQL | 15+ | ACID, escalable, usado por Odoo |
| **Extensión Geo** | PostGIS | 3.x | Georreferenciación de inspecciones |
| **Migraciones** | Prisma Migrate | - | Control de versiones de schema |

### Apps Móviles

| Componente | Tecnología | Versión | Justificación |
|------------|------------|---------|---------------|
| **Framework** | React Native | 0.73+ | Code sharing con web, ecosistema React |
| **Platform** | Expo | 50+ | Desarrollo rápido, OTA updates |
| **Lenguaje** | TypeScript | 5.3+ | Consistencia total del stack |
| **State** | Zustand | 4.x | Mismo que web |
| **Offline DB** | WatermelonDB | - | Sincronización offline-first |
| **Camera** | expo-camera | - | Captura de evidencias |
| **Location** | expo-location | - | GPS para georreferenciación |
| **Signature** | react-native-signature-canvas | - | Firmas digitales |

### Infraestructura

| Componente | Tecnología | Justificación |
|------------|------------|---------------|
| **Containerización** | Docker | Portabilidad, consistencia entre entornos |
| **Orquestación** | Docker Compose / Kubernetes | Escalabilidad horizontal |
| **File Storage** | AWS S3 / MinIO | Almacenamiento de fotos y certificados |
| **CDN** | CloudFront | Distribución rápida de imágenes |

### Herramientas de Desarrollo

| Categoría | Herramienta | Uso |
|-----------|-------------|-----|
| **Linting** | ESLint + Prettier | Consistencia de código |
| **Testing** | Jest + React Testing Library | Unit tests, integration tests |
| **E2E Testing** | Playwright | Pruebas end-to-end |
| **CI/CD** | GitHub Actions | Automatización de builds y deploys |
| **Monitoreo** | Sentry | Error tracking |
| **Logs** | Winston | Logging estructurado |

### Normativa y Estándares Soportados

| Categoría | Normas Aplicables |
|-----------|-------------------|
| **Concreto** | NMX-C-414-ONNCCE, NMX-C-083-ONNCCE, ACI 318 |
| **Acero** | NMX-B-172, NMX-B-457, ASTM A615 |
| **Construcción** | NOM-008-SCFI, Código de Edificación local |
| **Calidad** | ISO 9001, ISO 19011 (Auditorías) |
| **INFONAVIT** | Reglas de Operación, Criterios Técnicos |

---

## KPIs y Métricas de Calidad

### Indicadores de Inspecciones

| KPI | Meta | Cálculo | Propósito |
|-----|------|---------|-----------|
| **Tasa de aprobación 1ra inspección** | >85% | (Inspecciones aprobadas / Total inspecciones) × 100 | Calidad constructiva |
| **Tiempo promedio de inspección** | <45 min | Promedio de duración de inspecciones | Eficiencia del proceso |
| **Inspecciones realizadas vs programadas** | >95% | (Realizadas / Programadas) × 100 | Cumplimiento del plan |

### Indicadores de No Conformidades

| KPI | Meta | Cálculo | Propósito |
|-----|------|---------|-----------|
| **NC por vivienda** | <3 | Total NC / Total viviendas | Calidad general |
| **Tiempo promedio cierre NC** | <5 días | Promedio (Fecha cierre - Fecha detección) | Velocidad de corrección |
| **NC críticas abiertas** | 0 | Count NC críticas sin cerrar | Riesgo de calidad |
| **NC recurrentes** | <5% | (NC repetidas / Total NC) × 100 | Efectividad de CAPA |

### Indicadores de Laboratorio

| KPI | Meta | Cálculo | Propósito |
|-----|------|---------|-----------|
| **Conformidad de pruebas** | >98% | (Pruebas conformes / Total pruebas) × 100 | Calidad de materiales |
| **Tiempo entrega resultados** | <7 días | Promedio (Fecha resultado - Fecha muestreo) | Eficiencia de laboratorio |
| **Lotes rechazados** | <2% | (Lotes rechazados / Total lotes) × 100 | Control de proveedores |

---

## Roadmap de Implementación

### Sprint 1-2: Fundamentos (8 SP)
- [x] Setup proyecto y base de datos
- [x] Schema quality con tablas principales
- [ ] API CRUD checklists y templates
- [ ] Pantalla de gestión de checklists
- [ ] Catálogo de normas aplicables

### Sprint 3-4: Inspecciones (13 SP)
- [ ] API inspecciones con validación
- [ ] Captura de inspecciones en web
- [ ] Carga de evidencias fotográficas
- [ ] Integración con MOB-003 para inspecciones móviles
- [ ] Generación de reportes PDF

### Sprint 5-6: No Conformidades (13 SP)
- [ ] API gestión de NC
- [ ] Clasificación y asignación de NC
- [ ] Flujo de acciones correctivas (CAPA)
- [ ] Verificación de cierre
- [ ] Dashboard de NC por proyecto

### Sprint 7-8: Laboratorio (10 SP)
- [ ] API pruebas de laboratorio
- [ ] Registro de especímenes
- [ ] Carga de resultados
- [ ] Comparación vs especificaciones
- [ ] Alertas de no conformidad

### Sprint 9-10: Certificaciones (9 SP)
- [ ] API certificados
- [ ] Gestión de documentos
- [ ] Validación de proveedores certificados
- [ ] Reportes de cumplimiento normativo
- [ ] Exportación para auditorías

### Sprint 11-12: Integraciones y Reportes (8 SP)
- [ ] Integración con MAI-005 (Control de Obra)
- [ ] Integración con MAI-011 (INFONAVIT)
- [ ] Dashboard ejecutivo de calidad
- [ ] Reportes de KPIs
- [ ] Testing end-to-end

**Total Estimado:** 12 sprints (6 meses)

---

## Documentos Relacionados

### Épicas y Requerimientos
- [EPIC-MAI-006: Control de Calidad](../../08-epicas/EPIC-MAI-006-calidad.md)
- [Requerimientos Funcionales](./requerimientos/)
- [Especificaciones Técnicas](./especificaciones/)
- [Historias de Usuario](./historias-usuario/)

### Arquitectura y Diseño
- [Modelo de Datos](../../04-modelado/database-design/quality-schema.md)
- [Diagrama de Clases](../../04-modelado/domain-models/quality-domain.md)
- [Trazabilidad](./implementacion/TRACEABILITY.yml)

### Referencias Externas
- [ADR-001: Stack Tecnológico](../../97-adr/ADR-001-stack-tecnologico.md)
- [EPIC-MAI-019: Apps Móviles](../../08-epicas/EPIC-MAI-019-mobile-apps.md)
- [MAI-005: Control de Obra y Avances](../MAI-005-control-obra-avances/)
- [MAI-011: INFONAVIT Cumplimiento](../MAI-011-infonavit-cumplimiento/)

---

**Generado:** 2025-12-06
**Última actualización:** 2025-12-06
**Estado:** Completo
