Durante 8 años trabajé en producción. Sé lo que pasa cuando el ordenador de la línea no tiene red: el parte de eficiencia se apunta en un papel, y el papel se pierde. Esta PWA hace el cálculo en el dispositivo, sin servidor, sin conexión, sin excusas.
Tecnologías: Vanilla JavaScript (ES Modules), localStorage, Service Worker, PWA.
En fábrica, la eficiencia de un turno se calcula al final de la jornada: piezas producidas frente a tiempo disponible. Con varias líneas, modelos distintos y medidas en metros o piezas, el cálculo manual es lento y propenso a errores. Y el software que lo resuelve suele asumir que en planta hay internet, que no siempre lo hay.
Esta aplicación nace de esa realidad: un operario con una tablet industrial, sin red, debe poder anotar producción, ver la eficiencia al instante y guardar el histórico. Todo en el dispositivo, sin backend que dependa de la conexión.
Service Worker con caché de todos los assets (v17). Instalable en el dispositivo, funciona sin conexión, carga en menos de 500ms.
Vanilla JavaScript con ES Modules nativos. Sin framework, sin bundler, sin build step: el código que ves es el código que se ejecuta.
Eficiencia por tiempo teórico vs turno real, soporte de piezas/hora y metros/hora, desglose de producción y Meta 100% con reparto greedy.
Plantillas de línea, sesiones de producción e histórico completos en el dispositivo, con export/import JSON para migrar entre equipos.
Genera .xlsx del histórico acumulado con SheetJS, integrable con la oficina de producción sin fricción.
6 paletas de color para identificar líneas de producción de un vistazo, con anti-FOUC para que el tema se aplique antes de pintar.
Una SPA de lógica acotada no necesita un framework de 100KB. ES Modules nativos dan estructura sin build step. ADR-002. ADR →
Primero fue Dexie/IndexedDB, pero para datos pequeños y uso individual la complejidad no se justificaba. Se migró a localStorage: síncrono, simple, universal. ADR-008. ADR →
Los módulos UI se comunican con eventos nativos del navegador, sin librería de estado. Desacoplamiento sin dependencias. ADR-005.
El objetivo para llegar al 100% se reparte entre los modelos activos con un algoritmo greedy, desglosado en PALETS + FILAS + PAQUETES. ADR-009.
PWA instalable en el móvil o la tablet. Funciona offline: los datos se guardan en el dispositivo y no dependen de ningún servidor.
Abrir la app →Repo público con 34 tests, 9 ADRs y la documentación técnica. Sin build step: clonar y abrir index.html.
Ver en GitHub →Este es uno de los tres proyectos del portfolio. Cada uno con su problema real, sus decisiones documentadas y su código verificado.