En producción · v2.8

Centinela

Sistema de gestión institucional de Protección Civil Municipal de Centro, Tabasco. Concentra la operación diaria de Bomberos —llamadas, servicios, atención prehospitalaria, guardias, unidades y riesgos— y la administración del área en un solo lugar, en la computadora y en el celular.

Logotipo de Protección Civil de Centro
61k
líneas de TypeScript
124
tablas en la base de datos
270
rutas de la API
36
migraciones sin pérdida de datos
600+
pruebas automatizadas
320+
commits en siete meses
Qué hace

Toda la operación, en un solo sistema

Cada área ve lo suyo y cada persona hace solo lo que su puesto le permite. Estos son los módulos principales:

Llamadas de emergencia

El registro de cada reporte: quién llama, qué pasa, dónde, y con qué guardia y unidad se atendió.

Bitácora de servicios

Cada salida con su número, horarios, kilómetros, personal y ubicación. Papelera con motivo y números que se reutilizan.

FRAP

El reporte de atención prehospitalaria completo, paso a paso: paciente, valoración, manejo, firmas y hoja impresa oficial.

Guardias de turno

Las guardias A, B y C con su jefe e integrantes. Todo lo que se registra en el turno queda ligado a él.

Fugas de gas y tanques

Reportes de fuga con el control de los tanques retenidos, su entrega y la bitácora de servicio ligada.

Flotilla y combustible

Unidades, revisiones con checklist, vales de combustible, bodega con cortes mensuales y agenda de unidades.

Mapa de riesgos

Los servicios con coordenadas y las marcas de riesgo sobre Villahermosa, con capas, zonas, análisis del área y mapa de calor.

Agenda y avisos

Eventos con recordatorios, mensajes internos, anuncios y avisos en la pantalla según el puesto de cada quien.

App para el celular

Se instala como app, abre lo ya visto sin señal y guarda capturas en cola para enviarlas al recuperar la conexión.

Capturas

Así se ve

Imágenes del Sandbox, con datos ficticios. En la computadora, el menú lateral; en el celular, la barra inferior y los formularios por pasos.

centinela / bomberos

Trayecto

De una migración a un sistema completo

Centinela empezó como la migración de un módulo existente y creció versión por versión, siempre en producción y sin perder un solo dato.

Abril 2026 · El inicio

Dictamen pasa a React y Node

La primera versión migró el módulo de Dictamen a un frontend en React con TypeScript y un backend propio en Node. Después llegó la primera parte de Bomberos.

Agosto 2026 · v1.1

Rediseño completo y actas de inspección

Todas las pantallas se rediseñaron con un mismo sistema visual, las hojas impresas se unificaron y el Acta Circunstanciada de Inspección se llena paso a paso. Llegó el apartado de Novedades.

Octubre 2026 · v2.0

Guardias de turno

Bomberos inicia y termina su guardia A, B o C, y todo lo que se registra en el turno queda ligado a ella: llamadas, bitácoras, FRAP, fugas, vales y combustible. Un aplicador de migraciones con registro de lo aplicado.

Octubre 2026 · v2.1 – v2.6

Papelera, ubicación, tanques y brigada

Bitácoras que se eliminan sin perderse y cuyo número se reutiliza, coordenadas del servicio desde el celular, control de tanques retenidos, fugas ligadas a su bitácora, voluntarios y brigada.

Noviembre 2026 · v2.7 – v2.8

Mapa de riesgos

Un mapa de Villahermosa con los servicios y los riesgos del municipio: capas, zonas de prevención con anillos, vistas guardadas, antecedentes de cada lugar, análisis del área y mapa de calor.

En beta · v2.9

Centinela en el celular

Una app instalable con diseño propio para el celular, capturas sin señal que se envían solas, bloqueo por inactividad, avisos por persona y una configuración del sistema rediseñada.

Ingeniería

Cómo está construido

Una aplicación web de una sola página, una API propia y una base relacional, desplegadas en un VPS con Linux.

Frontend

React + TypeScript

  • Vite y Tailwind CSS
  • PWA con service worker
  • Leaflet para el mapa
  • Recharts para estadística
Backend

Node + Express

  • API REST con TypeScript
  • Sesiones con JWT en cookie
  • Permisos por rol, área y puesto
  • PM2 detrás de Nginx
Datos

MariaDB

  • 124 tablas relacionales
  • Migraciones aditivas
  • Transacciones en lo crítico
  • Respaldo antes de cada despliegue
Operación

VPS + CI

  • Script de despliegue con chequeos
  • Entorno beta separado
  • Pruebas e2e con Playwright
  • Pruebas unitarias con Vitest

Nunca se pierde un dato

Las migraciones solo agregan; nada se borra ni se reescribe. Un aplicador lleva el registro de lo aplicado y el despliegue se detiene si falta alguna.

Numeración sin huecos

Las bitácoras tienen número consecutivo. Si una se elimina por error, va a la papelera y su número lo toma la siguiente que se capture.

Capturas sin señal, sin duplicados

En el celular, lo capturado sin conexión espera en una cola y se envía solo. El servidor reconoce cada captura para no guardarla dos veces.

Permisos que siguen al puesto

Lo que cada persona puede hacer depende de su rol, su área y su puesto; si cambia el jefe de una guardia, el permiso pasa al nuevo.

Sandbox

Pruébalo tú mismo

El Sandbox es Centinela con datos ficticios: las mismas pantallas de Administración y de Bomberos, funcionando dentro de tu navegador. Lo que captures se queda solo en tu equipo y lo puedes reiniciar cuando quieras.