663 lines
26 KiB
Markdown
663 lines
26 KiB
Markdown
# _MAP: MAI-006 - Calidad
|
||
|
||
**Épica:** MAI-006
|
||
**Nombre:** Calidad
|
||
**Fase:** 1 - Alcance Inicial
|
||
**Presupuesto:** $25,000 MXN
|
||
**Story Points:** 45 SP
|
||
**Estado:** 📝 A crear
|
||
**Sprint:** Sprint 11-12 (Semanas 16.5-19)
|
||
**Prioridad:** P1
|
||
**Última actualización:** 2025-12-06
|
||
|
||
---
|
||
|
||
## 📋 Propósito
|
||
|
||
Implementar sistema completo de gestión de calidad en obra con:
|
||
- **Inspecciones de calidad** con checklists configurables
|
||
- **Reportes de no conformidad (RNC)** con workflow de resolución
|
||
- **Pruebas de laboratorio** (concreto, suelos, materiales)
|
||
- **Certificaciones y aprobaciones** (clientes, supervisores externos)
|
||
- **Integración con apps móviles** MOB-003 (Supervisor) y MOB-004 (Capataz)
|
||
- **Trazabilidad completa** por vivienda/frente de obra
|
||
|
||
**Justificación:** El control de calidad es crítico para cumplimiento con normativas de construcción, certificación INFONAVIT, y garantía de entrega de viviendas sin defectos. Reduce costos de corrección y rework en postventa.
|
||
|
||
**Reutilización GAMILIT:** 10% (concepto básico de checklist, adaptado extensivamente)
|
||
|
||
---
|
||
|
||
## 📁 Contenido
|
||
|
||
### Requerimientos Funcionales (5)
|
||
|
||
| ID | Archivo | Título | Estado |
|
||
|----|---------|--------|--------|
|
||
| RF-QUA-001 | [RF-QUA-001-inspecciones-calidad.md](./requerimientos/RF-QUA-001-inspecciones-calidad.md) | Sistema de Inspecciones de Calidad | 📝 A crear |
|
||
| RF-QUA-002 | [RF-QUA-002-no-conformidades.md](./requerimientos/RF-QUA-002-no-conformidades.md) | Reportes de No Conformidad (RNC) | 📝 A crear |
|
||
| RF-QUA-003 | [RF-QUA-003-pruebas-laboratorio.md](./requerimientos/RF-QUA-003-pruebas-laboratorio.md) | Pruebas de Laboratorio | 📝 A crear |
|
||
| RF-QUA-004 | [RF-QUA-004-certificaciones.md](./requerimientos/RF-QUA-004-certificaciones.md) | Certificaciones y Aprobaciones | 📝 A crear |
|
||
| RF-QUA-005 | [RF-QUA-005-trazabilidad-vivienda.md](./requerimientos/RF-QUA-005-trazabilidad-vivienda.md) | Trazabilidad de Calidad por Vivienda | 📝 A crear |
|
||
|
||
### Especificaciones Técnicas (5)
|
||
|
||
| ID | Archivo | Título | RF | Estado |
|
||
|----|---------|--------|-------|--------|
|
||
| ET-QUA-001 | [ET-QUA-001-modelo-inspecciones.md](./especificaciones/ET-QUA-001-modelo-inspecciones.md) | Modelo de Datos de Inspecciones | RF-QUA-001 | 📝 A crear |
|
||
| ET-QUA-002 | [ET-QUA-002-workflow-rnc.md](./especificaciones/ET-QUA-002-workflow-rnc.md) | Workflow de No Conformidades | RF-QUA-002 | 📝 A crear |
|
||
| ET-QUA-003 | [ET-QUA-003-integracion-laboratorio.md](./especificaciones/ET-QUA-003-integracion-laboratorio.md) | Integración con Laboratorio | RF-QUA-003 | 📝 A crear |
|
||
| ET-QUA-004 | [ET-QUA-004-sistema-certificaciones.md](./especificaciones/ET-QUA-004-sistema-certificaciones.md) | Sistema de Certificaciones | RF-QUA-004 | 📝 A crear |
|
||
| ET-QUA-005 | [ET-QUA-005-integracion-apps-moviles.md](./especificaciones/ET-QUA-005-integracion-apps-moviles.md) | Integración MOB-003 y MOB-004 | RF-QUA-001, RF-QUA-002 | 📝 A crear |
|
||
|
||
### Historias de Usuario (9)
|
||
|
||
| ID | Archivo | Título | SP | Estado |
|
||
|----|---------|--------|----|--------|
|
||
| US-QUA-001 | [US-QUA-001-crear-checklist-inspeccion.md](./historias-usuario/US-QUA-001-crear-checklist-inspeccion.md) | Crear Checklist de Inspección | 5 | 📝 A crear |
|
||
| US-QUA-002 | [US-QUA-002-realizar-inspeccion-movil.md](./historias-usuario/US-QUA-002-realizar-inspeccion-movil.md) | Realizar Inspección desde App Móvil | 8 | 📝 A crear |
|
||
| US-QUA-003 | [US-QUA-003-registrar-no-conformidad.md](./historias-usuario/US-QUA-003-registrar-no-conformidad.md) | Registrar Reporte de No Conformidad | 5 | 📝 A crear |
|
||
| US-QUA-004 | [US-QUA-004-workflow-resolucion-rnc.md](./historias-usuario/US-QUA-004-workflow-resolucion-rnc.md) | Workflow de Resolución de RNC | 5 | 📝 A crear |
|
||
| US-QUA-005 | [US-QUA-005-solicitar-prueba-laboratorio.md](./historias-usuario/US-QUA-005-solicitar-prueba-laboratorio.md) | Solicitar Prueba de Laboratorio | 3 | 📝 A crear |
|
||
| US-QUA-006 | [US-QUA-006-registrar-resultados-laboratorio.md](./historias-usuario/US-QUA-006-registrar-resultados-laboratorio.md) | Registrar Resultados de Laboratorio | 5 | 📝 A crear |
|
||
| US-QUA-007 | [US-QUA-007-generar-certificacion.md](./historias-usuario/US-QUA-007-generar-certificacion.md) | Generar Certificación de Calidad | 5 | 📝 A crear |
|
||
| US-QUA-008 | [US-QUA-008-dashboard-calidad.md](./historias-usuario/US-QUA-008-dashboard-calidad.md) | Dashboard de Calidad y KPIs | 5 | 📝 A crear |
|
||
| US-QUA-009 | [US-QUA-009-historial-calidad-vivienda.md](./historias-usuario/US-QUA-009-historial-calidad-vivienda.md) | Historial de Calidad por Vivienda | 4 | 📝 A crear |
|
||
|
||
**Total Story Points:** 45 SP
|
||
|
||
### Implementación
|
||
|
||
📊 **Inventarios de trazabilidad:**
|
||
- [TRACEABILITY.yml](./implementacion/TRACEABILITY.yml) - Matriz completa de trazabilidad
|
||
- [DATABASE.yml](./implementacion/DATABASE.yml) - Objetos de base de datos
|
||
- [BACKEND.yml](./implementacion/BACKEND.yml) - Módulos backend
|
||
- [FRONTEND.yml](./implementacion/FRONTEND.yml) - Componentes frontend
|
||
- [MOBILE.yml](./implementacion/MOBILE.yml) - Integración con MOB-003 y MOB-004
|
||
|
||
### Pruebas
|
||
|
||
📋 Documentación de testing:
|
||
- [TEST-PLAN.md](./pruebas/TEST-PLAN.md) - Plan de pruebas
|
||
- [TEST-CASES.md](./pruebas/TEST-CASES.md) - Casos de prueba
|
||
- [INTEGRATION-TESTS.md](./pruebas/INTEGRATION-TESTS.md) - Tests de integración con apps móviles
|
||
|
||
---
|
||
|
||
## 🔗 Referencias
|
||
|
||
- **README:** [README.md](./README.md) - Descripción detallada de la épica
|
||
- **Fase 1:** [../README.md](../README.md) - Información de la fase completa
|
||
- **Apps Móviles:** [../../08-epicas/EPIC-MAI-019-mobile-apps.md](../../08-epicas/EPIC-MAI-019-mobile-apps.md) - MOB-003 y MOB-004
|
||
- **Control de Obra:** [../MAI-005-control-obra-avances/README.md](../MAI-005-control-obra-avances/README.md) - Integración con avances
|
||
- **Postventa:** [../MAI-009-calidad-postventa/README.md](../MAI-009-calidad-postventa/README.md) - Continuidad en garantías
|
||
|
||
---
|
||
|
||
## 📊 Métricas
|
||
|
||
| Métrica | Valor |
|
||
|---------|-------|
|
||
| **Presupuesto estimado** | $25,000 MXN |
|
||
| **Presupuesto target** | $25,000 MXN ±5% |
|
||
| **Story Points estimados** | 45 SP |
|
||
| **Duración estimada** | 2.5 semanas (12.5 días) |
|
||
| **Reutilización GAMILIT** | 10% |
|
||
| **Integraciones móviles** | 2 (MOB-003, MOB-004) |
|
||
| **RF a implementar** | 5/5 |
|
||
| **ET a implementar** | 5/5 |
|
||
| **US a completar** | 9/9 |
|
||
|
||
---
|
||
|
||
## 🎯 Módulos Afectados
|
||
|
||
### Base de Datos
|
||
- **Schema:** `quality`
|
||
- **Tablas principales:**
|
||
* `quality_checklists` - Plantillas de checklist
|
||
* `quality_checklist_items` - Items de checklist
|
||
* `quality_inspections` - Inspecciones realizadas
|
||
* `quality_inspection_results` - Resultados de inspección
|
||
* `quality_non_conformities` - Reportes de No Conformidad (RNC)
|
||
* `quality_nc_actions` - Acciones correctivas/preventivas
|
||
* `quality_lab_tests` - Pruebas de laboratorio
|
||
* `quality_lab_results` - Resultados de laboratorio
|
||
* `quality_certifications` - Certificaciones emitidas
|
||
* `quality_approval_history` - Historial de aprobaciones
|
||
- **Funciones:** Cálculo de % cumplimiento, validaciones de inspección
|
||
- **ENUMs:**
|
||
* `inspection_type` (structural, finishing, electrical, plumbing, general)
|
||
* `inspection_status` (pending, in_progress, passed, failed, conditional)
|
||
* `nc_severity` (critical, major, minor, observation)
|
||
* `nc_status` (open, in_progress, resolved, verified, closed, rejected)
|
||
* `lab_test_type` (concrete_compression, soil_compaction, steel_tensile, moisture)
|
||
* `certification_type` (infonavit, client, internal, regulatory)
|
||
|
||
### Backend
|
||
- **Módulo:** `quality`
|
||
- **Path:** `apps/backend/src/modules/quality/`
|
||
- **Services:**
|
||
* `ChecklistService` - CRUD de checklists
|
||
* `InspectionService` - Registro y gestión de inspecciones
|
||
* `NonConformityService` - Gestión de RNC
|
||
* `LabTestService` - Solicitud y registro de pruebas
|
||
* `CertificationService` - Emisión de certificaciones
|
||
* `QualityAnalyticsService` - KPIs y reportes
|
||
- **Controllers:** QualityController, InspectionController, LabTestController
|
||
- **Middlewares:** QualityAuthGuard, ProjectAccessGuard
|
||
|
||
### Frontend Web
|
||
- **Features:** `quality`, `inspections`, `lab-tests`, `certifications`
|
||
- **Path:** `apps/frontend/src/features/quality/`
|
||
- **Componentes:**
|
||
* ChecklistBuilder - Constructor de checklists
|
||
* InspectionForm - Formulario de inspección
|
||
* NCReportForm - Reporte de no conformidad
|
||
* NCWorkflow - Estado y workflow de RNC
|
||
* LabTestRequest - Solicitud de prueba
|
||
* LabResultsViewer - Visualizador de resultados
|
||
* CertificationGenerator - Generador de certificaciones
|
||
* QualityDashboard - Dashboard con KPIs
|
||
* QualityHistory - Historial por vivienda
|
||
- **Stores:** qualityStore, inspectionStore, ncStore, labTestStore
|
||
|
||
### App Móvil (React Native)
|
||
- **Integración con MOB-003 (Supervisor de Obra):**
|
||
* Realizar inspecciones con checklist offline
|
||
* Registrar RNC con fotos geoetiquetadas
|
||
* Solicitar pruebas de laboratorio desde campo
|
||
* Aprobar/rechazar avances con criterios de calidad
|
||
- **Integración con MOB-004 (Capataz):**
|
||
* Consultar checklists pendientes
|
||
* Ver RNC de su cuadrilla
|
||
* Marcar resolución de RNC
|
||
- **Features compartidas:**
|
||
* Scanner QR de elementos/viviendas
|
||
* Captura de fotos con marcas de calidad
|
||
* Modo offline con sincronización
|
||
* Notificaciones de RNC urgentes
|
||
|
||
---
|
||
|
||
## 🔄 Flujo de Trabajo de Calidad
|
||
|
||
### 1. Inspección de Calidad
|
||
|
||
```mermaid
|
||
flowchart TD
|
||
A[Ingeniero crea checklist] --> B[Asigna inspección a Supervisor]
|
||
B --> C{Supervisor en campo}
|
||
C -->|App MOB-003| D[Escanea QR de vivienda/área]
|
||
D --> E[Completa checklist item por item]
|
||
E --> F[Toma fotos de evidencia]
|
||
F --> G{¿Todos items OK?}
|
||
G -->|Sí| H[Marca inspección aprobada]
|
||
G -->|No| I[Genera RNC automático]
|
||
H --> J[Sincroniza a servidor]
|
||
I --> J
|
||
J --> K[Notifica a Residente/Ingeniero]
|
||
```
|
||
|
||
### 2. Reporte de No Conformidad (RNC)
|
||
|
||
```mermaid
|
||
flowchart TD
|
||
A[Detección de NC] --> B[Registro de RNC]
|
||
B --> C[Clasificación de severidad]
|
||
C --> D{Severidad}
|
||
D -->|Crítica| E[Notificación inmediata]
|
||
D -->|Mayor/Menor| F[Workflow normal]
|
||
E --> G[Asignación a responsable]
|
||
F --> G
|
||
G --> H[Análisis de causa raíz]
|
||
H --> I[Plan de acción correctiva]
|
||
I --> J[Ejecución de corrección]
|
||
J --> K[Verificación de resolución]
|
||
K --> L{¿Aceptada?}
|
||
L -->|Sí| M[Cierre de RNC]
|
||
L -->|No| N[Re-trabajo]
|
||
N --> J
|
||
M --> O[Actualización de KPIs]
|
||
```
|
||
|
||
### 3. Pruebas de Laboratorio
|
||
|
||
```mermaid
|
||
flowchart TD
|
||
A[Solicitud de prueba] --> B[Toma de muestra en campo]
|
||
B --> C{¿Laboratorio interno?}
|
||
C -->|Sí| D[Registro en sistema]
|
||
C -->|No| E[Envío a laboratorio externo]
|
||
D --> F[Ejecución de prueba]
|
||
E --> G[Espera de resultados]
|
||
F --> H[Captura de resultados]
|
||
G --> H
|
||
H --> I{¿Cumple especificación?}
|
||
I -->|Sí| J[Aprobación de material/proceso]
|
||
I -->|No| K[Generación de RNC]
|
||
J --> L[Actualización de trazabilidad]
|
||
K --> M[Workflow de corrección]
|
||
```
|
||
|
||
---
|
||
|
||
## 📱 Funcionalidades en Apps Móviles
|
||
|
||
### MOB-003: App Supervisor de Obra
|
||
|
||
**Funcionalidades de Calidad:**
|
||
|
||
1. **Inspecciones Digitales**
|
||
- Lista de inspecciones pendientes
|
||
- Checklist interactivo con checkbox/radio/texto
|
||
- Captura de fotos con anotaciones
|
||
- Geolocalización automática
|
||
- Modo offline completo
|
||
|
||
2. **Registro de RNC**
|
||
- Formulario rápido de RNC
|
||
- Clasificación de severidad con colores
|
||
- Asignación de responsable
|
||
- Adjuntar fotos/videos
|
||
- Estado en tiempo real
|
||
|
||
3. **Validación de Avances**
|
||
- Criterios de calidad antes de aprobar avance
|
||
- Checklist de pre-entrega
|
||
- Bloqueo de avance si hay RNC críticas
|
||
|
||
### MOB-004: App Capataz
|
||
|
||
**Funcionalidades de Calidad:**
|
||
|
||
1. **Consulta de Estándares**
|
||
- Ver checklists de calidad por actividad
|
||
- Especificaciones técnicas
|
||
- Fotos de referencia (buenas prácticas)
|
||
|
||
2. **Gestión de RNC de Cuadrilla**
|
||
- Ver RNC asignadas a su cuadrilla
|
||
- Marcar acciones completadas
|
||
- Solicitar re-inspección
|
||
- Comunicación con Supervisor
|
||
|
||
3. **Auto-inspección**
|
||
- Checklist simplificado antes de solicitar inspección oficial
|
||
- Reducir rechazo por errores obvios
|
||
|
||
---
|
||
|
||
## 📋 Tipos de Inspecciones
|
||
|
||
### Inspecciones Estructurales
|
||
|
||
| Tipo | Frecuencia | Checklist Típico |
|
||
|------|-----------|------------------|
|
||
| **Cimentación** | Por vivienda | - Profundidad excavación<br>- Nivel de desplante<br>- Resistencia concreto<br>- Armado de acero |
|
||
| **Estructura** | Por nivel | - Verticalidad muros<br>- Niveles y plomadas<br>- Resistencia elementos<br>- Juntas constructivas |
|
||
| **Losa** | Por losa | - Espesor<br>- Armado<br>- Resistencia concreto<br>- Nivelación |
|
||
|
||
### Inspecciones de Acabados
|
||
|
||
| Tipo | Frecuencia | Checklist Típico |
|
||
|------|-----------|------------------|
|
||
| **Instalaciones** | Por vivienda | - Instalación eléctrica certificada<br>- Instalación hidráulica sin fugas<br>- Gas con dictamen<br>- Drenaje funcional |
|
||
| **Acabados** | Por vivienda | - Aplanados sin fisuras<br>- Pisos nivelados<br>- Pintura uniforme<br>- Cancelería funcional |
|
||
| **Pre-entrega** | Por vivienda | - Limpieza general<br>- Servicios funcionando<br>- Llaves y protecciones<br>- Manual de usuario |
|
||
|
||
### Inspecciones de Cumplimiento
|
||
|
||
| Tipo | Frecuencia | Responsable |
|
||
|------|-----------|-------------|
|
||
| **INFONAVIT** | Por proyecto | Verificador externo |
|
||
| **Protección Civil** | Por etapa | Autoridad municipal |
|
||
| **Desarrollos Urbanos** | Al finalizar | Municipio |
|
||
| **Cliente Final** | Pre-escritura | Derechohabiente + Notario |
|
||
|
||
---
|
||
|
||
## 🧪 Pruebas de Laboratorio
|
||
|
||
### Pruebas de Concreto
|
||
|
||
| Prueba | Norma | Frecuencia | Especificación |
|
||
|--------|-------|-----------|----------------|
|
||
| **Resistencia a compresión** | NMX-C-083 | 1 cilindro/10m³ | f'c ≥ especificado (150, 200, 250 kg/cm²) |
|
||
| **Revenimiento** | NMX-C-156 | Por revoltura | 10±2 cm típico |
|
||
| **Temperatura** | NMX-C-435 | Por colado | ≤ 32°C |
|
||
|
||
### Pruebas de Suelos
|
||
|
||
| Prueba | Norma | Frecuencia | Especificación |
|
||
|--------|-------|-----------|----------------|
|
||
| **Compactación Proctor** | ASTM D698 | Por capa | 95% PM mínimo |
|
||
| **Capacidad de carga** | ASTM D1194 | Por lote | Según proyecto estructural |
|
||
| **Granulometría** | ASTM C136 | Por banco | Según especificación |
|
||
|
||
### Pruebas de Acero
|
||
|
||
| Prueba | Norma | Frecuencia | Especificación |
|
||
|--------|-------|-----------|----------------|
|
||
| **Tensión** | NMX-B-172 | Por lote | fy ≥ 4200 kg/cm² |
|
||
| **Doblado** | NMX-B-172 | Por lote | Sin fisuras |
|
||
|
||
---
|
||
|
||
## 📈 KPIs de Calidad
|
||
|
||
### Indicadores Principales
|
||
|
||
| KPI | Fórmula | Meta | Frecuencia |
|
||
|-----|---------|------|------------|
|
||
| **% Cumplimiento Inspecciones** | (Inspecciones aprobadas / Total inspecciones) × 100 | ≥ 90% | Semanal |
|
||
| **Índice de No Conformidad** | RNC / Viviendas inspeccionadas | ≤ 2.0 | Mensual |
|
||
| **Tiempo Resolución RNC** | Promedio días (apertura → cierre) | ≤ 7 días | Mensual |
|
||
| **% RNC Críticas** | RNC críticas / Total RNC × 100 | ≤ 10% | Mensual |
|
||
| **% Pruebas Aprobadas** | Pruebas aprobadas / Total pruebas × 100 | ≥ 95% | Mensual |
|
||
| **Tasa de Re-trabajo** | Viviendas con correcciones / Total viviendas × 100 | ≤ 15% | Mensual |
|
||
|
||
### Dashboard de Calidad
|
||
|
||
**Vista Director/Ingeniero:**
|
||
```
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ DASHBOARD DE CALIDAD - Fraccionamiento Los Pinos │
|
||
│ Periodo: Noviembre 2025 │
|
||
├─────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ 📊 KPIs Principales │
|
||
│ ┌──────────────┬──────────────┬──────────────┐ │
|
||
│ │ Cumplimiento │ RNC Abiertas │ Tiempo Resol │ │
|
||
│ │ 92.5% │ 18 │ 5.2 días │ │
|
||
│ │ ✅ Meta │ ⚠️ Alto │ ✅ Meta │ │
|
||
│ └──────────────┴──────────────┴──────────────┘ │
|
||
│ │
|
||
│ 📋 Inspecciones (Última semana) │
|
||
│ • Realizadas: 45 / 50 programadas (90%) │
|
||
│ • Aprobadas: 38 (84%) │
|
||
│ • Rechazadas: 7 (16%) │
|
||
│ • Pendientes: 5 │
|
||
│ │
|
||
│ 🚨 RNC por Severidad │
|
||
│ • Críticas: 2 (URGENTE) │
|
||
│ • Mayores: 8 │
|
||
│ • Menores: 8 │
|
||
│ │
|
||
│ 🧪 Pruebas de Laboratorio │
|
||
│ • Pendientes: 3 │
|
||
│ • En proceso: 5 │
|
||
│ • Aprobadas: 28 (93%) │
|
||
│ • Rechazadas: 2 (7%) │
|
||
│ │
|
||
│ 📈 Tendencia Mensual │
|
||
│ • RNC: ↓ -15% vs mes anterior │
|
||
│ • Cumplimiento: ↑ +3% vs mes anterior │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 🔌 Integraciones
|
||
|
||
### Con Módulo MAI-005 (Control de Obra)
|
||
|
||
**Integración:** Bloqueo de avances si hay RNC críticas pendientes
|
||
|
||
```typescript
|
||
// Validación al registrar avance
|
||
async validateProgressQuality(conceptId: string, unitId: string) {
|
||
const criticalNCs = await this.ncService.findCriticalNCsByUnit(unitId, conceptId);
|
||
|
||
if (criticalNCs.length > 0) {
|
||
throw new QualityBlockException(
|
||
`No se puede registrar avance. Existen ${criticalNCs.length} RNC críticas pendientes.`,
|
||
criticalNCs
|
||
);
|
||
}
|
||
|
||
const requiredInspection = await this.inspectionService.isInspectionRequired(conceptId);
|
||
|
||
if (requiredInspection && !requiredInspection.passed) {
|
||
throw new QualityBlockException(
|
||
`Se requiere inspección de calidad aprobada antes de registrar avance.`
|
||
);
|
||
}
|
||
|
||
return { valid: true };
|
||
}
|
||
```
|
||
|
||
### Con Módulo MAI-009 (Postventa)
|
||
|
||
**Integración:** Historial de calidad de vivienda pasa a postventa
|
||
|
||
- Todas las inspecciones realizadas
|
||
- RNC generadas y resueltas
|
||
- Pruebas de laboratorio
|
||
- Certificaciones emitidas
|
||
- Checklist de pre-entrega
|
||
|
||
### Con Apps Móviles (MOB-003, MOB-004)
|
||
|
||
**APIs Clave:**
|
||
|
||
```typescript
|
||
// Endpoints para app móvil
|
||
GET /api/mobile/quality/inspections/pending // Inspecciones pendientes
|
||
GET /api/mobile/quality/checklists/:id // Detalle de checklist
|
||
POST /api/mobile/quality/inspections/:id/complete // Completar inspección
|
||
POST /api/mobile/quality/nc/create // Crear RNC
|
||
PATCH /api/mobile/quality/nc/:id/resolve // Marcar resolución
|
||
GET /api/mobile/quality/nc/assigned // RNC asignadas (MOB-004)
|
||
POST /api/mobile/quality/photos/upload // Upload fotos
|
||
```
|
||
|
||
**Sincronización Offline:**
|
||
|
||
- Cache de checklists asignados (actualizado diariamente)
|
||
- Queue de inspecciones completadas
|
||
- Queue de RNC registradas
|
||
- Compresión de fotos antes de sincronizar
|
||
- Retry automático con backoff exponencial
|
||
|
||
---
|
||
|
||
## 🚨 Casos de Uso Críticos
|
||
|
||
### Caso 1: Inspección de Cimentación con RNC Crítica
|
||
|
||
**Escenario:**
|
||
1. Supervisor en campo para inspección de cimentación de lote 45
|
||
2. Detecta que profundidad de desplante es 20cm menor a especificación
|
||
3. Genera RNC crítica desde app MOB-003
|
||
4. Sistema notifica inmediatamente a Ingeniero y Residente
|
||
5. Se bloquea automáticamente siguiente actividad (armado) en ese lote
|
||
6. Ingeniero analiza y determina acción: profundizar excavación
|
||
7. Capataz ejecuta corrección
|
||
8. Supervisor re-inspecciona y aprueba
|
||
9. Se desbloquea actividad de armado
|
||
|
||
**Flujo en Sistema:**
|
||
```
|
||
MOB-003 → [RNC Crítica] → Backend → [Notificación Push] → Ingeniero
|
||
→ [Bloqueo Avance] → MAI-005
|
||
Ingeniero → [Plan Acción] → RNC → Capataz (MOB-004)
|
||
Capataz → [Marcar Resuelto] → RNC
|
||
Supervisor → [Re-inspección] → [Aprobar] → [Desbloqueo] → MAI-005
|
||
```
|
||
|
||
### Caso 2: Prueba de Resistencia de Concreto Rechazada
|
||
|
||
**Escenario:**
|
||
1. Se colaron 20 viviendas con concreto del mismo proveedor
|
||
2. Prueba de cilindro a 28 días: 180 kg/cm² (especificación: 200 kg/cm²)
|
||
3. Sistema genera RNC automática
|
||
4. Se bloquean avances de las 20 viviendas afectadas
|
||
5. Se solicita estudio estructural
|
||
6. Ingeniero determina: refuerzo adicional en elementos
|
||
7. Se ejecuta refuerzo
|
||
8. Se solicita nueva prueba de concreto de refuerzo
|
||
9. Nueva prueba: 220 kg/cm² - APROBADA
|
||
10. Se cierran RNC y se desbloquean avances
|
||
|
||
### Caso 3: Pre-entrega a INFONAVIT
|
||
|
||
**Escenario:**
|
||
1. 50 viviendas listas para entrega
|
||
2. Sistema genera checklist de pre-entrega por vivienda
|
||
3. Supervisor realiza inspección final con MOB-003
|
||
4. De 50 viviendas:
|
||
- 45 aprobadas
|
||
- 5 con observaciones menores (detalles de pintura)
|
||
5. Se generan 5 RNC menores
|
||
6. Capataz ejecuta correcciones en 2 días
|
||
7. Supervisor re-inspecciona y aprueba
|
||
8. Sistema genera certificación de calidad por vivienda
|
||
9. Certificaciones se adjuntan a expediente de escrituración
|
||
|
||
---
|
||
|
||
## 🧪 Testing
|
||
|
||
### Unit Tests (Backend)
|
||
|
||
```typescript
|
||
describe('InspectionService', () => {
|
||
it('should create inspection from checklist template')
|
||
it('should calculate pass/fail based on critical items')
|
||
it('should block progress when critical NC exists')
|
||
it('should notify stakeholders on NC creation')
|
||
})
|
||
|
||
describe('NonConformityService', () => {
|
||
it('should classify NC by severity automatically')
|
||
it('should create workflow states correctly')
|
||
it('should calculate resolution time SLA')
|
||
it('should prevent closure without verification')
|
||
})
|
||
|
||
describe('LabTestService', () => {
|
||
it('should validate test results against specifications')
|
||
it('should generate NC when test fails')
|
||
it('should link test to affected units')
|
||
})
|
||
```
|
||
|
||
### E2E Tests (App Móvil)
|
||
|
||
```typescript
|
||
describe('Quality Inspection E2E', () => {
|
||
it('should complete full inspection flow offline')
|
||
it('should create NC with photos from field')
|
||
it('should sync inspection results when online')
|
||
it('should show pending inspections by priority')
|
||
})
|
||
```
|
||
|
||
### Integration Tests
|
||
|
||
```typescript
|
||
describe('Quality-Progress Integration', () => {
|
||
it('should block progress when critical NC exists')
|
||
it('should require inspection before progress')
|
||
it('should unlock progress after NC resolution')
|
||
})
|
||
```
|
||
|
||
---
|
||
|
||
## 🚨 Riesgos Específicos
|
||
|
||
| Riesgo | Probabilidad | Impacto | Mitigación |
|
||
|--------|-------------|---------|------------|
|
||
| **Usuarios omiten inspecciones** | Alta | Alto | Validación automática, bloqueos de avance |
|
||
| **RNC no se resuelven a tiempo** | Media | Alto | SLA automáticos, alertas escalonadas |
|
||
| **Pruebas de laboratorio tardadas** | Alta | Medio | Buffer de tiempo, laboratorio interno |
|
||
| **Rechazo masivo en inspección final** | Media | Muy Alto | Inspecciones intermedias, auto-inspección |
|
||
| **Pérdida de trazabilidad** | Baja | Alto | Blockchain de inspecciones (futuro) |
|
||
|
||
---
|
||
|
||
## 📋 Checklist de Implementación
|
||
|
||
### Backend
|
||
- [ ] Modelo de datos de checklists configurables
|
||
- [ ] CRUD de inspecciones con validaciones
|
||
- [ ] Workflow de estados de RNC
|
||
- [ ] Servicio de notificaciones por severidad
|
||
- [ ] Integración con MAI-005 (bloqueos de avance)
|
||
- [ ] API para apps móviles (MOB-003, MOB-004)
|
||
- [ ] Sistema de pruebas de laboratorio
|
||
- [ ] Generación de certificaciones PDF
|
||
- [ ] Dashboard con KPIs de calidad
|
||
|
||
### App Móvil (MOB-003, MOB-004)
|
||
- [ ] Sincronización de checklists offline
|
||
- [ ] Formulario de inspección con checklist interactivo
|
||
- [ ] Captura de fotos con anotaciones
|
||
- [ ] Registro rápido de RNC
|
||
- [ ] Scanner QR de viviendas/elementos
|
||
- [ ] Modo offline completo
|
||
- [ ] Sincronización de inspecciones y RNC
|
||
- [ ] Notificaciones push de RNC urgentes
|
||
|
||
### Frontend Web
|
||
- [ ] Constructor de checklists (drag & drop)
|
||
- [ ] Vista de inspecciones con filtros
|
||
- [ ] Dashboard de calidad con gráficos
|
||
- [ ] Workflow visual de RNC (Kanban)
|
||
- [ ] Gestión de pruebas de laboratorio
|
||
- [ ] Generador de certificaciones
|
||
- [ ] Historial de calidad por vivienda
|
||
- [ ] Reportes exportables (PDF/Excel)
|
||
|
||
### Database
|
||
- [ ] Schemas y tablas
|
||
- [ ] Funciones de validación y cálculo
|
||
- [ ] Triggers de notificación
|
||
- [ ] Índices optimizados
|
||
- [ ] Views de reportes
|
||
|
||
### Testing
|
||
- [ ] Unit tests >80% coverage
|
||
- [ ] E2E tests de flujos completos
|
||
- [ ] Integration tests con MAI-005
|
||
- [ ] Tests de app móvil (offline, sync)
|
||
- [ ] Load tests (1000 inspecciones/día)
|
||
|
||
### Despliegue
|
||
- [ ] Variables de entorno
|
||
- [ ] Configuración de notificaciones
|
||
- [ ] Integración con storage de fotos
|
||
- [ ] Monitoreo de SLA de RNC
|
||
- [ ] Documentación de uso
|
||
|
||
---
|
||
|
||
## 💡 Lessons Learned (a documentar post-implementación)
|
||
|
||
1. **Checklists deben ser flexibles:** No todas las obras tienen los mismos criterios
|
||
2. **Notificaciones críticas no deben saturar:** Solo lo urgente es urgente
|
||
3. **Modo offline es obligatorio:** Campo rara vez tiene buena conexión
|
||
4. **Fotos son evidencia legal:** Almacenar con metadatos completos (GPS, timestamp, hash)
|
||
|
||
---
|
||
|
||
## 🎯 Siguiente Paso
|
||
|
||
Crear documentación de requerimientos funcionales (RF-QUA-001 a RF-QUA-005) y especificaciones técnicas (ET-QUA-001 a ET-QUA-005).
|
||
|
||
**Prioridad de documentación:**
|
||
1. RF-QUA-001: Sistema de Inspecciones (core del módulo)
|
||
2. RF-QUA-002: Reportes de No Conformidad (crítico para workflow)
|
||
3. ET-QUA-005: Integración con apps móviles (alta dependencia)
|
||
|
||
---
|
||
|
||
**Generado:** 2025-12-06
|
||
**Mantenedores:** @tech-lead @backend-team @mobile-team @quality-team
|
||
**Estado:** 📝 A crear
|
||
**Prioridad:** P1 - Crítico para certificación y cumplimiento
|