EAEvans
Agina
← All work03 / 07
Humanitarian Impact · Backend Architecture2026Backend Developer
03

COFI Global Impact

Humanitarian participation and impact designed as connected domains

NestJSMongoDBRabbitMQAWS

Overview

The Chris Oyakhilome Foundation International responds to vulnerable communities through humanitarian programs spanning health care, youth leadership, family strengthening, education, food, emergency relief, and community rebuilding. The Global Impact application turns that mission into a participatory platform where donors, corporate partners, and volunteers can discover projects, contribute, coordinate service, and see measurable impact.

Mission context

Hope, participation,
and measurable impact.

COFI reports humanitarian reach across more than 120 countries, with programs spanning health care, youth leadership, family strengthening, education, emergency relief, food support, and community rebuilding.

COFI global humanitarian impact map
120+Countries reached4B+Lives touched10MActs of kindness
My role on COFI Global Impact

Backend Developer · Contract
March—April 2026
Seyforte Tech · Remote, Nigeria

I designed and delivered the complete backend in four weeks.

  1. 01

    Architected the NestJS and TypeScript backend around explicit domains for identity, projects, gamification, donations, partnerships, and volunteer rostering.

  2. 02

    Built multi-role access for individual donors, corporate partners, and volunteers, including tier progression backed by a COFI Points event ledger.

  3. 03

    Created GeoJSON-compatible project hotspots and impact endpoints for global missions, funding needs, IDP counts, and live aggregate statistics.

  4. 04

    Integrated Paystack and Flutterwave for one-time and recurring donations with webhook processing and immutable receipts linked to users and projects.

  5. 05

    Used CRON, RabbitMQ, and Redis to pre-compute impact metrics, avoiding expensive reductions during client requests.

  6. 06

    Built the S3 and Lambda branding pipeline, completed Swagger documentation, delivered the architecture document in four days, and handed over the accepted source code.

01 / Challenge

The conditions that shaped the system.

A useful architecture begins with the real constraint.

One four-week backend had to support heterogeneous humanitarian projects, several user and partnership models, volunteer rosters, auditable donations, gamified participation, geospatial discovery, high-frequency impact statistics, and media built for sharing. The architecture needed clear boundaries and fast read paths without sacrificing traceability.

02 / System map

From input to outcome

01Donors, partners & volunteers
02NestJS domain modules
03MongoDB & Redis
04Paystack & Flutterwave
05RabbitMQ impact metrics
06S3 & Lambda branding
03 / Approach

How the build was organised.

Make the boundaries clear, then move.

  1. 01

    Designed a Domain-Driven NestJS and TypeScript backend with independent boundaries for identity, projects, donations, volunteering, partnerships, impact, and gamification.

  2. 02

    Built multi-role and multi-tier participation for individual donors, corporate partners, and volunteers, with COFI Points accumulated through an event-sourced ledger.

  3. 03

    Combined GeoJSON project hotspots, Paystack and Flutterwave donations, RabbitMQ and Redis metric aggregation, and an S3-to-Lambda branding pipeline into one production-shaped system.

04 / Engineering decisions

Decisions that carried the product.

01

A ledger for participation

COFI Points are recorded as immutable participation events, making tier progression explainable and resistant to silent balance changes.

02

Impact reads without runtime reductions

Scheduled jobs and RabbitMQ listeners pre-compute materialized impact metrics in Redis so global maps and dashboards receive fast aggregate data.

03

Sharing as a system capability

S3 events trigger Lambda-based watermarking and branding, turning approved media into downloadable assets that extend each project’s reach.

05 / Outcomes

What changed after the work.

Visit the live product ↗
Next case study · 04Stradha