Saltar al contenido
Plataforma web / impacto social

Unidos por la Guaira — plataforma de ayuda humanitaria

2026
Desarrollador full stack (proyecto en colaboración, a dos personas)
Unidos por la Guaira — plataforma de ayuda humanitaria

Descripción del proyecto

Unidos por la Guaira nació tras el terremoto del 24 de junio para coordinar la ayuda humanitaria que sale desde la costa. Cualquiera puede consultar, sin iniciar sesión, un tablero público con lo recolectado, lo que falta y a dónde va cada actividad. Colaboradores y solicitantes se registran para gestionar aportes, puntos de acopio, solicitudes y testimonios, con verificación de teléfono por WhatsApp y un panel de administración con aprobación de cuentas y auditoría. Construido en colaboración con otro desarrollador, siguiendo una arquitectura Clean + Screaming con límites de capa exigidos por ESLint.

Características principales

Tablero público de transparencia (sin sesión) con métricas de la operación en tiempo real vía Recharts

Directorio de puntos de acopio con mapa interactivo (React Leaflet + clustering) para decidir dónde entregar un aporte

Autenticación con Auth.js v5 y roles (SUPERADMIN, ADMIN, COLABORADOR, SOLICITANTE) con flujo de aprobación de cuentas

Verificación de teléfono por código OTP vía WhatsApp Cloud API, con webhook propio y firma HMAC

Notificaciones multicanal (WhatsApp, email SMTP, in-app) 'plug-and-play': cada canal se activa solo si sus variables de entorno están presentes

Subida de evidencias a buckets privados de Supabase Storage mediante URLs firmadas de un solo uso

Arquitectura Clean + Screaming por dominio (domain / application / infrastructure / ui), con límites de capa exigidos por ESLint

Suite de pruebas con Vitest y Testing Library, y despliegue en Vercel con migraciones y seed idempotente en cada build

Desafíos y soluciones

Transparencia pública sin exponer datos personales

El tablero de transparencia debía mostrar el avance real de la operación (aportes, actividades, sectores alcanzados) a cualquiera, sin sesión, pero sin filtrar datos de quién aportó qué. Se resolvió agregando las métricas a nivel de actividad y dejando la identidad de las personas colaboradoras solo dentro de su propia cuenta.

Notificaciones que no rompen el flujo si faltan credenciales

WhatsApp, email y el OTP telefónico dependen de credenciales de terceros (Meta, SMTP) que no siempre están disponibles en cada entorno. Cada canal se diseñó como un interruptor: si sus variables de entorno están vacías, el canal queda en no-op y el resto de la app sigue funcionando con normalidad.

Capturas de pantalla

Unidos por la Guaira — plataforma de ayuda humanitaria — 1
Unidos por la Guaira — plataforma de ayuda humanitaria — 2
Unidos por la Guaira — plataforma de ayuda humanitaria — 3

Tecnologías utilizadas

Next.js 16React 19TypeScriptTailwind CSS 4Prisma ORM 7PostgreSQL (Supabase)Auth.js v5TanStack QueryReact Hook FormZodZustandReact LeafletRechartsWhatsApp Cloud APIVitest
Desarrollado con por Alexei Hernández
© 2026 Todos los derechos reservados