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



Technologies used
Other projects

QuickMenu — digital menu SaaS
Multi-tenant platform for restaurants to build and customize a digital menu with a QR code: a dedicated panel, templates with a live preview, and sign-up approval.

Verlein — La Fórmula platform
Cinematic portfolio and lead-qualification funnel for a beat producer: audio catalog, custom CRM with campaign attribution, and Cal.com bookings.