
Un sistema para que ninguna familia damnificada reciba tres veces mientras la vecina no recibe ninguna — y para poder demostrarlo.
Pantalla real del sistema. Familia inventada: en este proyecto no entra ningún dato personal real, tampoco en demostraciones.
Después de un sismo la ayuda no la reparte una sola organización. La reparten muchas a la vez, cada una haciendo bien su trabajo: las brigadas parroquiales, los centros de acopio, la alcaldía, la gobernación, la UNGRD, las fundaciones que llegan de otras ciudades, la empresa que manda un camión y el vecino que organiza una colecta.
Cada uno lleva su cuaderno. Y nadie puede responder las dos preguntas que deciden si la ayuda llega bien: ¿esta familia ya recibió? y ¿a qué vereda no ha ido nadie?
No es negligencia. Es que las respuestas exigen cruzar cuadernos que están en manos distintas —cincuenta y cinco parroquias, tres centros de acopio, dos entidades y las fundaciones que nadie sabe cuántas son—, y la persona que podría hacerlo está entregando mercados.
Manos no intenta mandar sobre nadie. Consolida por parroquia y su zona, porque es la única división que ya existe sobre el terreno, cubre el departamento entero sin huecos, y tiene a alguien respondiendo por ella con nombre propio: el párroco conoce las veredas de su jurisdicción, sabe qué familias quedaron sin casa y quién no ha vuelto a aparecer.
Eso es microgerencia: cada parroquia opera lo suyo —registra, entrega, cuadra su jornada— y la coordinación diocesana ve la suma sin tener que pedirle un informe a nadie. Un centro de acopio, una fundación o una entidad que quiera entregar en ese territorio registra contra los mismos hogares, así que su entrega aparece en la cuenta el mismo día, no en la reunión del mes entrante.
El mapa de la operación no muestra dónde se entregó más: muestra dónde todavía no se ha llegado, que es lo único que le dice a alguien a dónde ir el sábado. El Quindío tiene doce municipios y noventa y seis centros poblados. Las veredas del sur, sobre la cordillera, quedan a horas de la última carretera pavimentada y sin señal de celular. Ahí es donde una lista en papel deja de alcanzar.
Centros poblados por municipio. El número es cuántos lugares distintos hay que visitar para cubrirlo entero.
Cada punto es un centro poblado del DANE, con sus coordenadas reales — las mismas que el sistema usa para calcular qué familias quedan cerca de un punto de atención y qué zonas no ha visitado nadie. Los puntos grandes son las doce cabeceras.
Al escribir el formulario, y antes de guardar, el sistema busca por documento, por nombre y fecha de nacimiento, por teléfono y por cercanía en el mapa. Muestra los hogares parecidos con el motivo de cada coincidencia. El documento se convierte en HMAC antes de consultar: nunca viaja en claro a la base.
El motor cruza el número de personas, las edades, las condiciones registradas, el estado de la vivienda y lo que ya se entregó. Cada recomendación llega con sus razones en texto, y se muestran literales. Una recomendación sin explicación se desobedece.
Las existencias no se escriben: se derivan de un libro de movimientos que la base de datos hace inmutable. Corregir un error es agregar un asiento compensatorio, nunca editar el original. Los lotes salen por vencimiento más próximo.
Si el inventario no alcanza, la entrega se registra igual, se abre un ajuste y se alerta a bodega para conteo físico. Si dos brigadas entregan al mismo hogar el mismo día sin señal, ambas quedan y se genera una alerta. La familia ya recibió: rechazar el registro solo lograría que el sistema mienta.
La brigada sale a una vereda sin cobertura, registra durante seis horas y todo sube solo al volver. El identificador de cada entrega lo genera el teléfono, así que reenviar el mismo registro cien veces produce una sola entrega.
Qué lleva cada kit, cada cuántos días se puede repetir y a quién le corresponde se cambian desde una pantalla. Las cuentas del equipo también: crear una, cambiarle el territorio o cerrarle la sesión a un teléfono perdido no necesita a nadie más. Si esas reglas vivieran en el código, cada ajuste sería una espera.
El reparto no es puerta a puerta nada más: se convoca a las familias, se carga un camión y se atiende una fila en un salón parroquial. Al cerrar el día, el sistema cruza dos cuentas independientes —lo que salió de la bodega y lo que quedó registrado— y nombra la diferencia. Ahí aparece lo que se rompió o lo que salió sin anotar, que de otro modo no se ve nunca.
El mismo código QR pegado en la parroquia sirve para las tres cosas que alguien puede querer: pedir ayuda, ofrecerla o venir a trabajar. «Necesito ayuda» va primero, porque quien llega con esa necesidad es quien menos puede darse el lujo de equivocarse de puerta. Quien pide ayuda no queda registrado como beneficiario: queda una solicitud que alguien tiene que atender, y la familia se registra cuando la visitan.
Quien quiere ayudar dice qué días puede, a qué sitios le queda fácil llegar y en qué quiere ayudar — no tiene que esperar a que exista una jornada concreta. Después, la coordinación pregunta «¿quién puede el martes en el acopio del norte?» y tiene la lista. Nadie aparece en esa lista sin que su párroco o la coordinación lo haya aprobado: van a estar al lado de familias vulnerables y de menores.
Después de un sismo hay familias que no necesitan otro mercado: necesitan hablar con alguien. Si en la visita alguien lo dice, queda anotado, y el párroco o el profesional lo atiende y deja constancia de que fue. El relato va cifrado y solo lo lee quien va a acompañar.
Es a la vez la llave para deduplicar y lo que más daño causa si se filtra. Por eso se guarda de tres formas, y ningún módulo fuera de un solo archivo puede tocar esas columnas — ni siquiera para leer.
Se usa HMAC con pepper y no un hash simple por una razón concreta: el espacio de números de cédula colombiana es pequeño y público, así que un SHA-256 pelado se rompe por fuerza bruta en segundos. El pepper, que no está en la base, es lo que hace inútil ese ataque para quien robe solo el volcado.
El alcalde, la gobernación y los donantes entran por un controlador distinto, que lee solo agregados y no tiene acceso a las tablas de hogares. Cuando un perfil de consulta pide una ficha individual, el sistema no le devuelve una versión recortada: lanza una excepción. La diferencia importa — con un objeto recortado bastaría que alguien agregara un campo el mes entrante y olvidara ocultarlo.
Y toda celda con menos de cinco hogares se publica como «menos de 5». En una vereda de doce casas, «tres hogares con discapacidad» identifica a esas familias para cualquiera que conozca el lugar.
Lo que Manos guarda no es «una base de datos»: es la constancia de que a una familia le entregaron un mercado. Si eso se pierde, no hay de dónde reconstruirlo — el otro extremo del papel tampoco existe. Por eso cada noche se guarda una copia completa y cifrada de todo el registro, sin que nadie tenga que acordarse.
Y la copia se restauró a propósito, con el sistema andando, para comprobar dos cosas distintas: que la información vuelve, y que se puede leer —que las llaves del cifrado siguen siendo las mismas—. Un respaldo que nunca se restauró no es un respaldo, es una creencia.
Manos dejó de ser una demostración. Está instalado, sirviendo a la Diócesis de Armenia, y la base se dejó sin un solo dato inventado: ni una familia de prueba, ni una entrega de mentira. Empieza a contar desde la primera familia real, para que ningún informe tenga que explicar después qué parte era cierta.
Hay actividades distintas todos los días y en varios centros de acopio: descargar un camión el martes, armar mercados el jueves, atender una jornada el sábado. No hace falta esperar a que se anuncie una: díganos qué días puede y dónde le queda fácil llegar, y lo llamamos cuando haya algo.
Escanee con la cámara del teléfono
O escriba esta dirección. Es corta a propósito, para poder dictarla por teléfono:
manos.xkape.co/ayudar/voluntarios
Su inscripción la revisa el párroco de su parroquia, o la coordinación si no elige una. Es por las familias con las que vamos a trabajar.
Manos es una donación. Ni la licencia, ni el alojamiento, ni el mantenimiento le cuestan un peso a la Diócesis de Armenia, y no hay una versión de pago detrás con funciones reservadas: lo que se ve aquí es todo lo que hay.
Esa condición no es un detalle administrativo, es una restricción de diseño. Un sistema que cobrara por familia registrada o por consulta al mapa habría empujado a registrar menos familias, y eso es exactamente lo contrario de lo que hace falta después de un sismo.
El territorio sale de los archivos oficiales del DANE, así que llevarlo a otro departamento es cuestión de horas, no de meses. El catálogo de artículos, qué lleva cada kit y cada cuánto se puede repetir se administran desde la aplicación: no hay que programar nada para adaptarlo.
Lo que no es replicable con un script es lo demás: el listado de parroquias, las cantidades oficiales de cada kit y la gente que va a usarlo. Eso lo pone cada organización. Los documentos legales sí viajan —política, aviso, formato de autorización y los anexos— porque están escritos contra la Ley 1581 y no contra una diócesis en particular; lo que cambia es el nombre del responsable y el correo de contacto.