Urbabus

Mapa público de rutas con la posición de las unidades en vivo, para que el pasajero sepa cuándo pasa su camión.

Cliente
Urbabus — transporte urbano en Nuevo Laredo
Tipo
Plataforma web y rastreo de flota
Estado
En producción
Rol de Vertex
Desarrollo y operación de la plataforma

El reto

El pasajero no tenía forma de saber cuándo iba a pasar su camión: esperaba en la parada sin información. Del lado del operador tampoco había visibilidad de la flota, así que no se podía responder un reclamo ni verificar si una unidad estaba realmente en ruta.

Qué construimos

  • Mapa público de rutas con la posición de cada unidad en vivo, abierto a cualquier pasajero desde el navegador.
  • Backend de sincronización GPS que funciona como único consumidor de los proveedores, en lugar de que cada visitante consulte por su cuenta.
  • Indicador de conexión de cuatro estados que distingue si el equipo transmitió de si el equipo realmente supo dónde estaba.
  • Integración con dos proveedores GPS, Traccar y Flespi, sobre equipos ST-906L con SIM Telcel.
  • Panel interno de unidades y rutas para el operador.

Antes

Esquema: cada visitante consultaba directamente a los proveedores GPS, una petición por unidad Visitante Visitante Visitante Traccar Flespi Una petición por unidad, desde cada navegador La carga crece con la audiencia

Después

Esquema: los visitantes hacen una sola petición al backend de Vertex, que es el único que consulta a los proveedores GPS Visitante Visitante Visitante Backend de Vertex Traccar Flespi Una sola petición agrupada La carga ya no depende de la audiencia
Antes, cada navegador consultaba a los proveedores GPS por su cuenta y hacía una petición por unidad. Ahora el backend es el único consumidor y el mapa recibe todo en una sola respuesta.
Leyenda de los cuatro estados de conexión de una unidad En línea Transmite y sabe dónde está Retrasado Transmite, pero con demora Sin señal GPS Transmite, pero sin fijar posición Fuera de línea No transmite
El indicador separa dos cosas que antes se confundían: que el equipo haya transmitido y que el equipo haya sabido dónde estaba. Un equipo sin señal satelital ya no se reporta como si estuviera bien.

Resultados medidos

De 65 minutos a 30 segundos entre reportes

El equipo de una unidad reportaba cada 65.5 minutos en promedio. Se diagnosticó el modo de suspensión del dispositivo con una medición A/B en producción y, una vez corregido, pasó a reportar cada 30 segundos.

La carga dejó de crecer con la audiencia

El mapa hacía una petición por unidad desde cada navegador. Se reemplazó por una sola petición agrupada al backend, así que la carga ya no aumenta con la cantidad de personas mirando el mapa.

Velocidad corregida

La API entregaba la velocidad en nudos y el mapa la mostraba con la etiqueta km/h. Se corrigió la conversión en ambos extremos.

Caída de 8 h 34 min documentada y cerrada

Se realizó el análisis posterior de una caída del servicio: agotamiento de memoria de la máquina virtual de Java en una instancia de 1 GB sin espacio de intercambio. Se corrigió el dimensionamiento y se agregó monitoreo para detectarlo antes.

Comparación a escala del intervalo entre reportes GPS: antes 65.5 minutos, después 30 segundos Antes ≈ 65.5 min entre reportes Después 30 s Medición A/B en producción. Barras a escala real: 30 s es 1/131 del intervalo anterior.
El equipo entraba en modo de suspensión y dejaba de reportar. Una vez corregido, el intervalo entre reportes cayó dos órdenes de magnitud.

Stack técnico

  • TypeScript
  • Node.js
  • Express
  • Prisma
  • PostgreSQL
  • Render
  • Google Cloud
  • Docker
  • Traccar
  • Flespi
  • Leaflet

El sistema en operación

Página pública de la Ruta TEC de Urbabus: el trazo de la ruta sobre el mapa de Nuevo Laredo con sus paradas numeradas, el desglose de tramos con distancia y tiempo, y el panel de unidades activas.
Ruta TEC en el sitio público: el trazo con sus paradas numeradas, la distancia y el tiempo de cada tramo, y el panel de unidades activas donde cada proveedor GPS reporta su propio estado de conexión.

¿Tiene una operación parecida?

Si su empresa enfrenta un problema similar, cuéntenos. La primera conversación es para entender su operación, no para venderle nada.

Agendar una reunión