← Blog
Caso de éxito Migración & Seguridad

Rehacer el portal de citas, con la gente ya en la cola

por Team P3·27 de septiembre de 2026·7 min de lectura

Cuando un ciudadano tiene que hacer un cambio de titular o llevar un documento, reserva una cita en la oficina de la empresa que le suministra agua, gas o energía. El portal es la agenda compartida de operadoras y personal del cliente: más de cien mil citas desde 2020, siempre con citas ya fijadas para las semanas siguientes. No había un momento para «apagar y encender».

01El punto de partida

El viejo portal funcionaba, pero las sorpresas no faltaban: las reglas de disponibilidad (horarios, aforo, cientos de excepciones y festivos) estaban en programas compilados cuyo código fuente ya no existía — las reconstruimos leyendo las consultas a la base de datos que quedaban dentro. Una regla estaba incluso en el código de la página web. Las notificaciones SMS consultaban tablas que ya no existían: llevaban tiempo paradas y nadie se había dado cuenta. Y la cita no registraba para qué empresa era, un dato que en las oficinas compartidas simplemente faltaba.

02Las decisiones

Una aplicación nueva, no una reforma. Escrita en Python con un framework maduro y open source, en una máquina cloud en una región italiana, a nombre del cliente y administrada por nosotros: la infraestructura es suya, nosotros la gestionamos. El cliente es una línea de configuración: añadir una empresa ya no requiere un despliegue. Separación rigurosa: en las oficinas compartidas, las citas de la otra empresa no existen para el operador, ni en el calendario ni en la búsqueda.

El diseño se mide. También los colores: los colores «puros» del logo no pasaban el test de contraste para quien tiene dificultad para distinguirlos, y se corrigieron sobre base medida, no a ojo.

03La migración: con la gente ya en la cola

El cambio se hizo oficina por oficina, con autorización explícita para cada una. Más de veintisiete mil citas históricas y futuras se migraron, de forma repetible (cada fila recuerda su origen, sin duplicados) y silenciosa (ningún correo de confirmación enviado por citas de años atrás). Durante unos días los dos portales estuvieron en paralelo, con una sonda que cada media hora llevaba al nuevo las citas hechas en el viejo; luego un aviso, finalmente el viejo en solo lectura. Donde un dato no estaba, no lo inventamos.

04Seguridad, verificada desde fuera

Un portal en internet hay que revisarlo como lo miraría quien no debería entrar. La revisión encontró un solo problema serio: ningún límite a los intentos de acceso. Cerrado el mismo día, aplicado solo a la página de login. El resto estaba en orden: cifrado moderno, cabeceras de seguridad, base de datos accesible solo desde la propia máquina, acceso de administración desde una sola dirección. Y los datos no están solo en la nube: cada noche una copia completa baja a un servidor en sede.

05Lo que aprendimos

1. Cuando las reglas están en código perdido, los datos cuentan igualmente la verdad. 2. No se inventan los datos que faltan: mejor un campo vacío y declarado que un valor plausible y falso. 3. Las migraciones se hacen con las personas dentro: paralelo, sonda, aviso, solo lectura. Nunca un salto al vacío. 4. La seguridad se verifica desde fuera, y los controles automáticos hay que controlarlos a su vez.

[P3]
Team P3
Boutique técnica · alojado en la UE
Las notas del equipo P3 sobre conformidad y soberanía, escritas por quienes las aplican para pymes. Escríbenos →
¿Tienes NIS2 a la vuelta de la esquina?

Empieza por la fotografía de tu red.

[ Reserva Munin ]