Aplicación de Operaciones Especiales para la gestión de tráfico del Área Metropolitana de Barcelona

Este proyecto ayuda a la gestión de tráfico permitiendo conocer el volumen y las intensidades de vehículos que salen del Área Metropolitana de Barcelona en un periodo. Este está formado por 3 partes: 

  • Frontend: El dashboard donde se visualizan los datos en formato gráfico o tabla.

Stack tecnológico: Angular, Typescript, CSS y HTML

  • Backend: Es el API Rest para enviar al frontend los datos necesarios para su visualización.

Stack tecnológico: PHP con CodeIgniter

  • ETL Procesos: Procesos que obtienen datos de tráfico y de retenciones en tiempo real, les pasan filtros y los guardan en la base de datos para su uso desde el Backend.

Stack tecnológico: Java, PostgreSQL, JavaFX y  PLPG/SQL

História del proyecto

En el CIVICAT, cuando se juntan diferentes festivos formando puentes, o la semana santa u otros días especiales se hace un seguimiento para conocer en tiempo real cuántos vehículos entran y salen del Área Metropolitana de Barcelona (AMB) durante el día facilitando así la previsión de cuántos vehículos entrarán y saldrán el último día de la operación.  Además se hace el seguimiento de los kilómetros de retención hay. 

Esta información es muy útil para los medios de comunicación para dar información sobre cuántos vehículos están saliendo o entrando a la ciudad y también sirve para la policía para habilitar un carril reversible cuando sea necesario.

Hasta la fecha se utilizaba un software bastante antiguo poco preciso/fiable a nivel de datos, semi-automático, desactualizado y los gráficos solo se pueden consultar durante la Operación cuando están en el VideoWall. Por ello junto al Ingeniero de Tráfico se tomó la decisión de crear una nueva versión que mejorase esos 3 aspectos.

Profundizando más en los dos primeros problemas podremos ver qué soluciones y mejoras se necesitan implementar:

1- Poco preciso y fiable: Este punto hace referencia al contaje de vehículos ya que en caso de que un equipo dejase de funcionar o no funcionase como es debido no se iba a detectar  o corregir esos datos sin la intervención del Ingeniero de Datos cosa que a veces no sucedía hasta una vez terminada la operación. 

La solución propuesta fue que el propio sistema pasará unos filtros de calidad para los datos en tiempo real y si estos no los pasaban, restituir el equipo por otro con una afinidad parecida de la misma vía. 

2- Actualización de las retenciones manualmente: Para el cálculo de las retenciones existía unas herramientas que facilitaban la extracción de los datos de la base de datos de retenciones pero después se tenía que filtrar y transformar esa información para cargarla en el gráfico de retenciones. Todo esto se tenía que repetir cada X tiempo por una persona durante toda la duración de la operación.

La solución fue integrar en el sistema el cálculo de retenciones para ello era necesario tener acceso a la Base de datos de Retenciones ubicada en otro CPD

Después se plantearon unas mejoras a nivel de usabilidad, de diseño y de accesibilidad. 

En el antiguo sistema, para definir y configurar una operación requería del seguimiento de varios pasos manuales y además solo se permitía tener una operación especial configurada para su seguimiento. Por lo tanto, el nuevo sistema, debía de permitir tener diferentes operaciones configuradas, acceder a operaciones pasadas y su configuración no requeriría de un proceso manual. 

Debido a los años que tenía el software anterior, su diseño se veía pasado de moda, poco usable y no aprovechaba el potencial que supone mostrar información en unas pantallas. Para el nuevo dashboard, se optó en darle un aire más moderno, más claro y gracias la creación de carrusels/sliders y una marquesina permitiendo mostrar más información en un mismo espacio.

Otra limitación que tenía, era que los datos/gráficos solo se podían consultar estando en la misma sala del VideoWall en el CIVICAT. Por este motivo, la nueva solución debía de ser una aplicación web accesible desde cualquier sitio dentro del rango IP y que fuera responsive para adaptarse a diferentes tamaños de pantallas.