Continuidad de un proyecto en curso. Existe una plataforma funcionando que recibe datos de sensores LoRaWAN a través de un gateway, corre un motor de diagnóstico y envía avisos por WhatsApp Cloud API. Stack:
Node.js/Fastify, PostgreSQL con TimescaleDB, BullMQ, React. Servidor e infraestructura a nombre del cliente.
Esta etapa cierra el tablero interno de verificación y el panel de administración de datos de producto, más ocho ajustes acordados.
Tablero — solo lectura
Para que el cliente verifique que el sistema mide bien. No es la aplicación del usuario final.
Selector de campo. ÚLtimo valor, batería, señal y antigüedad de cada sensor. Estado de tanque en porcentaje, con estados explícitos "sin calibrar" y "lectura inválida" cuando falta un dato o la medición no es válida. Estado del equipo. Gráfico de nivel contra actividad en el tiempo. Alertas abiertas con su motivo. Registro de envíos de WhatsApp con estado real de entrega.
Panel de administración
Carga de datos de producto por el cliente, nunca en el código: tablas de equipamiento, geometría de tanques, destinatarios de avisos y su consentimiento. Los cambios se reflejan en el motor y en el tablero sin necesidad de un deploy.
Los ocho ajustes
Reintento automático ante fallo de entrega, con estado final visible
Estado "sin comisionar" para sensores que nunca reportaron
Deduplicación y cooldown de alertas, con registro de toda supresión
Manejo de zona ciega y datos faltantes: nunca mostrar un valor derivado de un dato que falta
Selector de campo
Sesión del tablero de duración razonable
Watchdog adaptativo: umbral proporcional al intervalo de reporte y tolerante a la pérdida de paquetes esperable según calidad de señal
Prueba de entrega con plantilla aprobada, confirmada por el cliente
Fuera de alcance
Aplicación del usuario final, web o nativa. Alertas predictivas de desgaste.
Criterio de aceptación
Cada punto se verifica en vivo, en sesión conjunta, sobre el sistema andando. No por captura de pantalla. Cuando los ocho pasan, se libera el hito.
Perfil buscado
Desarrollo web con base de datos. No se requiere experiencia en IoT: el trabajo es recibir datos, guardarlos, calcular y mostrar.
Plazo de Entrega: No definido