Proyecto académico · TFG · Nota 10/10
APR Xàtiva
Sistema de control de acceso vehicular para el núcleo antiguo de Xàtiva. Panel web de administración, app Android para agentes y landing page informativa. Adoptado por el Ajuntament de Xàtiva como propuesta técnica oficial.
El problema

El núcleo antiguo de Xàtiva tiene un problema de tráfico: vehículos no autorizados circulan por zonas residenciales restringidas, afectando a la calidad de vida de los vecinos y al patrimonio histórico. El Ajuntament necesitaba un sistema moderno para gestionar y controlar el acceso.

La solución

Sistema completo de tres componentes: un backend Spring Boot con JWT, rate limiting y auditoría asíncrona; un panel web React para que los administradores gestionen vehículos, usuarios, solicitudes y derechos de acceso; y una app Android en Kotlin/Jetpack Compose para que los agentes consulten matrículas en tiempo real desde el móvil.

El sistema contempla dos tipos de acceso: permanente (residentes y autorizados) y puntual (invitados con límite mensual). El simulador de acceso permite probar el sistema con una probabilidad 60/40 sin necesidad de cámaras reales.

Stack y detalles
Lo que aprendí

APR Xàtiva fue el proyecto más complejo que había abordado hasta ese momento — tres componentes independientes que tienen que funcionar juntos, con un cliente real (el Ajuntament) y una fecha de entrega fija.

Implementar el sistema de refresh tokens con Spring Boot y gestionar los 401 paralelos en el frontend con una cola de espera fue uno de los retos más interesantes del proyecto.

¿Qué haría diferente hoy?
  • Añadiría tests de integración además de los unitarios, especialmente para el flujo de autenticación completo.
  • Usaría TypeScript en el panel React desde el principio en lugar de JavaScript.
  • Separaría la landing page del panel de administración en dos proyectos distintos.
Diagramas
Arquitectura del sistema · clic para ampliar
Flujo de autenticación JWT · clic para ampliar
Flujo de solicitud de acceso · clic para ampliar
Landing page informativa

Página informativa pública con descripción del sistema, zonas APR con mapa interactivo Leaflet, guía de funcionamiento en 4 pasos, sección de descarga y preguntas frecuentes. Disponible en valenciano, castellano e inglés.

Capturas de la landing
Panel de administración: gestión de usuarios

Gestión de usuarios con roles ADMIN y AGENTE. Búsqueda en tiempo real, skeleton loading y paginación client-side.

Panel de administración: gestión de vehículos

CRUD completo de vehículos autorizados. Registro de matrícula, tipo de vehículo y propietario. Búsqueda en tiempo real y paginación.

Panel de administración: derechos de acceso

Asignación de derechos de acceso permanentes y puntuales. Los accesos puntuales tienen un límite de 5 invitaciones mensuales por usuario.

Panel de administración: solicitudes de acceso

Revisión y aprobación de solicitudes enviadas desde la app Android. El administrador consulta la documentación adjunta y aprueba o rechaza cada solicitud.

El documento adjunto es un justificante de que el usuario reside, trabaja o tiene relación con el núcleo antiguo. En la demo se usa un archivo de prueba; al descargarlo desde el panel, el nombre del archivo incluye el DNI del usuario que lo envió.

Panel de administración: simulador de acceso

Simulador de paso vehicular con probabilidad 60/40 para testing sin cámaras reales. Muestra en tiempo real si el acceso sería permitido o denegado.

Panel de administración: auditoría

Log de todas las operaciones del sistema con paginación server-side y filtros por DNI y tipo de evento. El registro es asíncrono — no impacta en el rendimiento de las operaciones.

Capturas del panel de administración
App Android: aprobación de solicitud

La app refleja en tiempo real el estado de la solicitud. Una vez el administrador la aprueba desde el panel web, el usuario ve el cambio de estado sin necesidad de recargar.

App Android: guía de uso

Guía de onboarding para nuevos usuarios que explica el flujo completo: registro, solicitud de acceso y uso de la app.

App Android: gestión de vehículos

El usuario gestiona sus vehículos autorizados desde la app. Puede añadir matrículas y asignarles derechos de acceso a las zonas APR.

App Android: derechos de acceso

Solicitud de accesos puntuales para invitados y consulta de derechos permanentes. El acceso puntual tiene un límite de 5 invitaciones mensuales.

Capturas de la app Android