ConduTest — Plataforma de exámenes digitales de licencias de conducir
Aplicación multiplataforma orientada a digitalizar el proceso de evaluación teórica de licencias de conducir en municipios, reemplazando los exámenes en papel por un sistema con corrección automática, firma digital y control centralizado. Permite gestionar exámenes, usuarios, dispositivos y auditoría desde un panel administrativo, con soporte para múltiples localidades y operación tanto en equipos de escritorio como en tablets. Fue diseñada priorizando seguridad, trazabilidad y validez formal de los resultados, manteniendo una arquitectura mantenible por un equipo reducido.
Contexto
El proceso de evaluación teórica de licencias de conducir se realizaba íntegramente en papel, con corrección manual, circuitos lentos y sin trazabilidad de los resultados. En municipios con varios centros de examen distantes entre sí, además, no existía forma de unificar criterios ni de centralizar el control. ConduTest surgió como respuesta a esa necesidad, observada de forma directa en el área de Tránsito municipal.
Complejidad
Alta
Arquitectura de software, desarrollo full-stack y diseño técnico de la solución
El municipio necesitaba resolver varios problemas al mismo tiempo: corrección manual propensa a errores y lenta. Ausencia de registro auditable de las evaluaciones. Imposibilidad de unificar criterios entre localidades distintas. Nula trazabilidad de los resultados emitidos. Falta de una herramienta que integrara evaluación, registro y control en un único flujo. Necesidad de operar de forma coherente en municipios con varios centros de examen y sobre hardware heterogéneo, muchas veces de gama baja.
Se desarrolló una plataforma multiplataforma con backend API, frontend para escritorio y tablets, y una base de datos relacional. La solución incluye: definición de exámenes mediante estructuras de datos cargables, con preguntas, opciones e imágenes de señales. Toma de exámenes cronometrada con corrección automática. Emisión de cada resultado como documento firmado digitalmente con validez formal. Panel de administración con roles diferenciados (superadministrador, administrador general y administradores locales). Gestión centralizada de exámenes, usuarios, dispositivos, estadísticas y auditoría. Personalización por municipio (logo, colores, denominación). Soporte para múltiples localidades desde el diseño inicial.
Restricciones
- La aplicación debe operar de forma fluida en hardware de gama baja.
- Los resultados requieren validez formal, lo que exige firma digital con certificados.
- El sistema debe contemplar municipios con múltiples localidades distantes entre sí.
- El acceso por dispositivo debe poder autorizarse y revocarse de forma controlada.
- La solución debe ser mantenible por un equipo reducido.
- Los despliegues deben ser repetibles y documentados.
- La arquitectura debe permitir sumar exámenes y localidades sin rediseñar el sistema.
Arquitectura
La arquitectura separa responsabilidades en componentes desacoplados. El backend está construido como una API REST organizada por dominios funcionales, con autenticación centralizada y un modelo de validación de dispositivos. El frontend está desarrollado con una única base de código compilable para escritorio y tablets, conectada al backend mediante tokens. La persistencia se gestiona sobre una base de datos relacional, con cifrado de campos críticos. La firma digital de los documentos se resolvió como un microservicio independiente, desacoplado del backend principal para aislar esa responsabilidad. La estructura de los exámenes se define mediante datos externos al código, lo que permite incorporar nuevas evaluaciones, localidades y configuraciones sin modificar la base del sistema. La infraestructura se apoya en contenedores, reverse proxy y procesos documentados de despliegue y respaldo.
Decisiones técnicas
- Usar .NET 8 (C#) para el backend API, por rendimiento y solidez en un sistema con validez formal.
- Adoptar Flutter para cubrir escritorio y tablets desde una única base de código.
- Usar PostgreSQL como base de datos relacional principal.
- Aislar la firma digital como microservicio independiente en Python.
- Definir la estructura de exámenes en datos externos al código para facilitar la escalabilidad.
- Centralizar autenticación e identidad mediante tokens.
- Implementar un modelo de autorización de dispositivos según reglas del sistema.
- Contenerizar la aplicación para simplificar el despliegue.
- Documentar procesos críticos de operación, respaldo y mantenimiento.
Seguridad
- Autenticación centralizada mediante tokens.
- Modelo híbrido de autorización de dispositivos: aprobación local y validación remota periódica.
- Capacidad de inutilizar la aplicación ante uso no autorizado, incluso sin conexión constante.
- Cifrado de campos críticos en base de datos y de los respaldos.
- Emisión de resultados como documentos firmados digitalmente.
- Registro de acciones relevantes para auditoría (accesos, evaluaciones, configuraciones, modificaciones).
- Respaldos automáticos y manuales, locales y en nube.
- Separación de configuración por entorno.
Resultado
El resultado es una plataforma estable y escalable, preparada para implementarse en distintos municipios. El sistema permite centralizar la gestión de exámenes, mejorar de forma sustancial la trazabilidad de los resultados, reducir el uso de papel y unificar criterios de evaluación entre centros distintos. La estructura basada en datos externos y la separación de responsabilidades dejan una base reutilizable para incorporar nuevas evaluaciones y localidades sin rehacer el sistema.
Aprendizajes
Recorrer el ciclo de vida completo del desarrollo, desde el relevamiento de requerimientos hasta la puesta en producción, consolidó una visión integral del oficio. Desacoplar responsabilidades —como aislar la firma digital en un microservicio independiente— facilita el mantenimiento y la evolución del sistema. La seguridad y la usabilidad deben equilibrarse: un control excesivo que entorpezca el uso real termina siendo contraproducente. Definir la estructura de los exámenes fuera del código resultó clave para sostener el crecimiento. En sistemas con validez formal, la trazabilidad y la integridad de los datos son tan importantes como la funcionalidad visible. Construir a partir de un problema observado en primera persona orienta mejor las decisiones que un requerimiento abstracto.
Mejoras futuras
Incorporar estadísticas avanzadas y analíticas automáticas. Añadir un módulo de turnos e inscripción online para los aspirantes. Profundizar la personalización por municipio. Ampliar los controles de calidad en el pipeline. Mejorar la experiencia de usuario en los flujos administrativos más complejos.