Skip to main content
Web platform / social impact

Unidos por la Guaira — humanitarian aid platform

2026
Full stack developer (collaborative project, built with one other developer)
Unidos por la Guaira — humanitarian aid platform

Project description

Unidos por la Guaira was built after the June 24 earthquake to coordinate humanitarian aid coming out of the coast. Anyone can check a public dashboard, without logging in, showing what's been collected, what's still needed, and where each activity is headed. Contributors and requesters sign up to manage contributions, collection points, requests, and testimonials, with WhatsApp phone verification and an admin panel for account approval and auditing. Built together with another developer, following a Clean + Screaming architecture with layer boundaries enforced by ESLint.

Key features

Public transparency dashboard (no login) with real-time operation metrics via Recharts

Collection-point directory with an interactive map (React Leaflet + clustering) to decide where to deliver a contribution

Auth.js v5 authentication with roles (SUPERADMIN, ADMIN, CONTRIBUTOR, REQUESTER) and an account-approval workflow

Phone verification via a WhatsApp Cloud API OTP code, with a custom webhook and HMAC signature check

Multi-channel, plug-and-play notifications (WhatsApp, SMTP email, in-app): each channel turns itself on only when its environment variables are present

Evidence uploads to private Supabase Storage buckets via single-use signed URLs

Clean + Screaming architecture per domain (domain / application / infrastructure / ui), with layer boundaries enforced by ESLint

Test suite with Vitest and Testing Library, deployed on Vercel with idempotent migrations and seeding on every build

Challenges and solutions

Public transparency without exposing personal data

The transparency dashboard had to show the operation's real progress (contributions, activities, sectors reached) to anyone, without login, without leaking who contributed what. Solved by aggregating metrics at the activity level and keeping contributor identity visible only inside that person's own account.

Notifications that don't break the flow when credentials are missing

WhatsApp, email, and phone OTP all depend on third-party credentials (Meta, SMTP) that aren't always available in every environment. Each channel was designed as a toggle: if its environment variables are empty, the channel becomes a no-op and the rest of the app keeps working normally.

Screenshots

Unidos por la Guaira — humanitarian aid platform — 1
Unidos por la Guaira — humanitarian aid platform — 2
Unidos por la Guaira — humanitarian aid platform — 3

Technologies used

Next.js 16React 19TypeScriptTailwind CSS 4Prisma ORM 7PostgreSQL (Supabase)Auth.js v5TanStack QueryReact Hook FormZodZustandReact LeafletRechartsWhatsApp Cloud APIVitest
Built with by Alexei Hernández
© 2026 All rights reserved