Volver a proyectos
CS-02Envases Universales de México · 2026

Control de Calidad Industrial con Reporte por Turnos y Análisis Estadístico Avanzado

Sistema integral para el registro de pesos de producción por turno, con máquina de estados global que gestiona fechas y turnos, cálculo automático de promedios, estado OK/ALERTA, y un potente módulo de análisis estadístico que incluye Cpk, Sigma, gráficos de control (XBar-R, Boxplot, KDE), descomposición STL y predicciones con Prophet, todo integrado en un dashboard React con ECharts.

PythonFastAPIReactPostgreSQLSQLAlchemyEChartsProphetscipynumpyDockern8n

// 01_EL RETO

El reto

La planta carecía de un sistema digital de control de calidad. Los operadores registraban manualmente en hojas de cálculo los pesos de producción por turno, lo que generaba errores de captura, falta de estandarización, imposibilidad de realizar análisis estadísticos en tiempo real y retrasos en la generación de reportes. No existía trazabilidad histórica ni control de límites de calidad (umbrales). Además, el cambio de turno y la gestión de fechas se hacía de forma manual, propiciando inconsistencias. Se requería una solución que no solo digitalizara el registro, sino que proporcionara herramientas de análisis predictivo y control estadístico de procesos (SPC) para reducir la variabilidad y mejorar la calidad del producto.

// 02_ROLE

Mi rol y tecnologías

Diseño y desarrollo completo del módulo: modelos de datos, lógica de negocio (máquina de estados global, cálculo de promedios y estados), API REST, integración con n8n, frontend React con componentes de registro y dashboard analítico, e implementación de todos los gráficos estadísticos avanzados.

  • Diseño del modelo relacional con SQLAlchemy: TurnoConfig, Maquina, Material, GlobalState, Produccion, Medicion, incluyendo flags de conversión de unidades (gramo/kg) y umbrales de calidad.
  • Implementación de la máquina de estados global que gestiona la fecha y turno activo, con rotación automática al finalizar cada reporte y avance de día al completar el último turno (orden configurable).
  • Lógica de validación y cálculo: promedio de hasta 5 mediciones por máquina, determinación de estado OK/ALERTA basado en densidad nominal y umbral, y normalización de lotes (extracción de base numérica).
  • Desarrollo de la API REST (FastAPI) con endpoints para registro de reportes, historial paginado, gestión de máquinas/materiales/turnos (protegidos por PIN), y endpoints específicos para el dashboard analítico.
  • Construcción del motor de análisis estadístico usando pandas, numpy y scipy: cálculo de Cpk (índice de capacidad del proceso), Sigma Level, Coeficiente de Variación (CV), detección de anomalías por Z-score, y regresión lineal para tendencias.
  • Implementación del frontend React con componentes: ReportePesos (registro con persistencia local), ReporteTable (navegación tipo Excel), MaterialSelector (búsqueda), y gestión de máquinas/materiales/turnos con permisos.
  • Diseño del módulo de gráficos avanzados con ECharts: XBar/R Control Charts, Boxplot, KDE/Violin, Histograma con Cpk, Pareto, Heatmap, STL Decomposition, Predicción (Prophet), y gráficos de eficiencia operacional (Esfuerzo vs Calidad, Gantt Predictivo).
  • Integración con n8n para envío automático de reportes de turno y resúmenes semanales a sistemas externos (Slack, email) mediante webhooks asíncronos.

// 03_SOLUTION

Solución e impacto

El Módulo de Calidad de Kairos se estructuró en torno a una máquina de estados global que define el 'día industrial' y el turno activo, garantizando que todos los reportes se registren en el contexto correcto. El operador accede a la vista 'ReportePesos', donde selecciona máquina y material, ingresa el lote y hasta 5 mediciones de peso (en gramos). Al guardar, el backend valida que la fecha y turno coincidan con el estado global, calcula el promedio, determina si está dentro del umbral (OK/ALERTA) y persiste en Produccion y Medicion. Luego, el sistema avanza automáticamente al siguiente turno según el orden configurado, o avanza de día si era el último turno. El historial completo es accesible con filtros. El dashboard analítico consume endpoints especializados que devuelven estadísticas avanzadas: Cpk, Sigma, distribución, anomalías y tendencias. Los gráficos (XBar, R, Boxplot, KDE, Histograma con Cpk, Pareto, Heatmap, STL, Predicción) se renderizan con ECharts y permiten análisis profundo. Además, el sistema se integra con n8n para notificaciones automáticas de reportes y resúmenes semanales. La gestión de máquinas, materiales y turnos está protegida por PIN de administrador.

Arquitectura conceptual

Frontend (React)
ReportePesos (registro)HistorialMediciones (historial)AnalyticsDashboard (estadísticas)GestionMaquinas/Materiales/TurnosGráficos ECharts (XBar, R, Boxplot, etc.)
Backend (FastAPI)
API REST (reportes, historia, config)Máquina de estados globalMotor de cálculo (promedio, estado)Servicio de analítica (Cpk, Sigma, STL, Prophet)Integración n8n (webhooks)
Datos
PostgreSQL (tablas calidad)TurnoConfig, Maquina, MaterialGlobalState (estado activo)Produccion, Medicion (histórico)
Integraciones
n8n (Slack, Email)Reportes automáticos

// 04_RESULTS

Resultados

100%

Eliminación de registros manuales

< 3 min

Tiempo de registro por turno

Cpk > 1.33

Capacidad de proceso mejorada

24/7

Trazabilidad y auditoría continua

Automático

Reportes y alertas vía n8n