ADG
Social impactReal-timeFull-stack

Sangira

A verified food-redistribution platform that connects surplus-food donors with humanitarian organisations in Kigali, with dual-party confirmation on every handover so no transfer goes unaccounted for.

I solved the trust gap to ensure surplus food reaches those in need safely and efficiently.

Role

Full-stack, end to end

Timeline

(2026)

Stack

React · Node · MongoDB · Socket.io

gusangira.com
Sangira dashboard showing active food donation listings

01The problem

Bridging the Gap

In Kigali, hotels, caterers, and supermarkets throw away good surplus food every day while shelters and orphanages nearby struggle to feed the people in their care. The food and the need exist at the same time, in the same city what's missing is a reliable way to connect them.

The informal channels that exist run on phone calls and personal contacts, with no way to verify the organisation on the other end, no record a handover happened, no accountability when something goes wrong. For donors, that uncertainty makes it easier to bin the surplus than risk it. Waste on one side, hunger on the other, separated by a trust gap.

My challenge was to build a digital infrastructure that didn't just move food, but moved verification and accountability alongside it in real-time.

02The solution

Automated Accountability

I built a three-portal ecosystem (Donors, NGO, Administrators) that digitizes the entire chain of custody.

Verification

Automated identity checks for every NGO and DONOR onboarded.

Listing Flow

Simple 3-step process for DONOR to list surplus in under 40 seconds.

Dual-party Confirmation

QR-code or PIN based handshake at both pickup and drop-off points.

Impact Dash

Real-time reporting on meals saved and CO2 emissions reduced.

Sangira listing flow on mobile: a donor entering surplus food details and a pickup window

Listing flow

Sangira PIN confirmation screen where donor and NGO each confirm a handoff

PIN confirmation

03Architecture

Engineered for Speed

Leveraging a modern MERN stack with Socket.io allowed me to provide the real-time feedback required for logistics while maintaining a lightweight footprint for mobile users on varied network speeds.

Sangira's five-layer architecture: a presentation layer with donor, NGO, and admin portals; an API gateway handling REST routing, JWT authentication, rate limiting, and TLS; application services for auth, listings, matching, notifications, and impact reporting; a data layer for the database, cache, and file storage; and external integrations for SMS, WhatsApp, and maps.

04Core features

Precision Utilities

Organisation verification

Admins review registration documents and approve, reject, revoke, or reinstate, no one transacts unverified.

Dual-party pickup confirmation

Donor and NGO each confirm independently (PIN + condition report); the transfer only completes when both agree.

Real-time notifications

Live in-app alerts via Socket.io, plus email for key events.

Location and distance

Addresses are geocoded: NGOs see how far each listing is and can view listings on an interactive map.

Impact dashboards

Real meals-redistributed, waste-prevented, and transfer figures, with CSV/PDF export.

Admin governance

Flag, suspend, revoke, and restore organisations, with a full audit trail and SLA tracking on the verification queue.

05Challenges and what I learned

Lessons Learned

The primary technical hurdle was handling edge cases during simultaneous pickups. I initially encountered race conditions where two drivers would attempt to claim the same donation. Solving this required implementing a locking mechanism in MongoDB with optimistic concurrency control.

I also fought 'phantom bugs' related to GPS accuracy in dense urban pockets. I solved this by implementing a fallback system that used manual landmark verification if the geofence wasn't triggered reliably.

On the deployment front, I learned that Rwandese users predominantly use mobile data with high latency. This forced me to ruthlessly optimize my asset delivery pipeline, stripping out heavy libraries in favor of native browser APIs.

Building Sangira taught me that the most elegant code is worthless if it doesn't survive the chaos of real-world logistics. Robustness isn't a feature; it's the foundation.

06Results

By the Numbers

3 portals

Donor, NGO, admin — full role-based access

95 / 100 / 96

Lighthouse: performance, accessibility, best practices (production)

−82% bundle

1.85 MB → 340 KB via route-level code-splitting

Have a problem like this one?

I help social enterprises and modern startups build robust, real-time digital solutions that scale.