Casos

Lo que ya está funcionando en producción.

Dos plataformas que llevan años sin poder pararse, el canal por el que una de ellas recibe los avisos de los vecinos y los cuadros de mando con los que se mide esa actividad. Cada caso con lo que había al empezar, lo que hicimos y lo que quedó.

SmartCities

La plataforma urbana, cambio a cambio

Apoyamos el desarrollo del núcleo de Mejora tu Ciudad: las pruebas con las que entra cada cambio y el trabajo en segundo plano dentro de la propia plataforma.

  • +5 años

    De relación continua

  • Pruebas

    Cada cambio entra con la suya

  • Sin terceros

    El trabajo en segundo plano

  • Configuración

    El alta de un ayuntamiento nuevo

Una plataforma urbana crece por acumulación: cada área municipal pide su módulo y cada normativa añade un requisito. El reto no era construir una aplicación, era hacerse cargo de un producto vivo que no puede pararse.

Sobre su núcleo levantamos la base de pruebas con la que hoy entra cada cambio, aseguramos que el dato llegue entero de punta a punta, trajimos el trabajo en segundo plano dentro de la plataforma y dejamos el alta de un ayuntamiento nuevo en cuestión de configuración.

PHP / SymfonyRabbitMQElasticsearchMongoDB

Atención ciudadana · SmartCities

El aviso ciudadano, en una conversación

Apoyamos el desarrollo del canal conversacional de Mejora tu Ciudad, por el que un vecino avisa de una incidencia en la vía pública y sigue su resolución sin salir de la conversación.

  • Sin cuenta

    Avisar no pide registro: queda para las opciones que lo requieren

  • Según el aviso

    El flujo pregunta sólo lo que cada tipo de aviso necesita

  • Ubicación validada

    El aviso llega con el sitio comprobado, no descrito

  • Por sesión

    Cada sesión arranca limpia y el uso continuo la mantiene viva

Un aviso ciudadano nace en el momento en que alguien ve una farola apagada. El canal conversacional recoge ese mensaje y lo convierte en un aviso que un técnico municipal puede atender: con el sitio comprobado, con la fotografía dentro y sin preguntas que no vienen al caso.

El flujo se adapta a cada tipo de aviso y pregunta sólo lo que corresponde, valida la ubicación e incorpora la fotografía; después, los comentarios de la gestión y los comunicados del ayuntamiento se leen y se contestan en el mismo hilo.

Python

Analítica · SmartCities

Los avisos, en cuadros de mando

Apoyamos el desarrollo de los cuadros de mando que miden los avisos de Mejora tu Ciudad: dan la misma cifra que la plataforma para cada estado y cada servicio.

  • Cuadran

    La misma cifra en el cuadro de mando y en la plataforma

  • Cada día

    La carga entra rápida y estable

  • Más desglose

    Los cuadros de mando bajan al detalle que se pide

  • Formación

    Una ruta para que el equipo construya los suyos

Un cuadro de mando vale lo que valga la cifra que enseña. Cuando el panel y la plataforma no dan el mismo número para un mismo estado, la conversación se va en averiguar cuál de los dos tiene razón, y el panel deja de abrirse.

Sobre los cuadros de mando con los que se miden los avisos de Mejora tu Ciudad ampliamos los desgloses hasta el detalle que cada equipo pedía, cuadramos la cifra contra la plataforma servicio por servicio, reforzamos la carga diaria y dejamos por escrito la ruta para que más personas del equipo construyan los suyos.

PythonPostgreSQLETLMetabase

Infraestructura · SmartCities

La infraestructura, cambiando por dentro

Apoyamos la infraestructura sobre la que corre Mejora tu Ciudad: los entornos, la copia diaria, la vigilancia y los accesos, con cada migración entrando sin cortar el servicio.

  • En caliente

    Cada migración entra con el servicio encendido

  • Copia diaria

    Guardada fuera de los servidores que la producen

  • Se abre sola

    La tarea de seguimiento que abre la vigilancia

  • Un solo acceso

    Una identidad para entrar a los sistemas municipales

Detrás de cada trámite en línea, cada mapa municipal y cada cita hay una capa que no se ve: los servidores donde corre la plataforma, las bases de datos donde vive el dato y los accesos por los que entra cada equipo. Sostenerla es mantenerla disponible mientras por dentro cambia entera.

Sobre esa capa levantamos los entornos, automatizamos la copia diaria fuera de los servidores que la producen, montamos la vigilancia que abre por sí misma la tarea de seguimiento y llevamos las migraciones —la mensajería interna, las bases de datos, el motor de búsqueda— con el servicio encendido.

KubernetesDockerLinuxPostgreSQLPostGISOAuth2LDAP

Cliente web · SmartCities

El cliente web, con la aplicación en uso

Apoyamos el desarrollo del cliente web de Mejora tu Ciudad: el motor del mapa sobre el que se avisa subió de versión con la aplicación en uso, y las reglas de cada formulario viven en un solo sitio.

  • En uso

    El motor del mapa subió de versión con la aplicación en marcha

  • Se reutiliza

    Lo resuelto en una vista sirve en las demás

  • En un solo sitio

    Las reglas con las que se comprueba cada formulario

Renovar un cliente web que alguien está usando en ese mismo instante pide una disciplina distinta: cada cambio se prueba contra una pantalla abierta y con datos dentro, no contra un entorno vacío. Lo que se cambió fue la base sobre la que se monta, con la aplicación en uso todo el tiempo.

Llevamos a una versión nueva el motor que dibuja el mapa sobre el que se avisa, ordenamos el sistema de componentes con el que se montan las vistas para que una misma pieza sirva en varias, y dejamos en un solo sitio las reglas con las que se comprueba cada formulario.

AngularTypeScriptLeafletRxJS

Salud

La historia clínica electrónica, en el móvil

Apoyamos el desarrollo de Casiopea Mobility, la aplicación con la que los profesionales del grupo hospitalario Quirónsalud consultan y registran la historia clínica mientras atienden.

  • iOS y Android

    Lo que entra en una plataforma entra en la otra

  • En la arquitectura

    Las validaciones obligatorias, no pantalla a pantalla

  • Sin parar

    Modernizada sin dejar de publicar versiones

  • Sobre lo ya hecho

    Los módulos nuevos entraron sin tocar el código estable

La aplicación funcionaba y estaba implantada, que es justo lo que hace difícil tocarla: cualquier interrupción afectaba a profesionales que estaban consultando una historia clínica en mitad de una atención.

Los dos clientes nativos se modernizaron con la aplicación en producción todo el tiempo, y sobre esa base entraron módulos completos sin reescribir lo que ya funcionaba. En una historia clínica un registro a medias es un dato clínico equivocado, así que las validaciones viven en la arquitectura y no pantalla a pantalla.

KotlinSwiftJava

¿Por dónde empezamos?

Dos formas de arrancar, según lo que tengas hoy delante. Respuesta en un día laborable.

Hablemos