IK
Inefable KoumbaSoftware Engineer · Data & Networks
arrow_backBack to projects
FINTECHCROWDFUNDINGNEXT.JS 16NESTJS

JE CONTRIBUE

Multi-tenant crowdfunding platform powering seamless cross-border donations with real-time payment orchestration.

JE CONTRIBUE
OVERVIEW

JE CONTRIBUE is a digital humanitarian crowdfunding ecosystem designed to connect European diaspora donors with beneficiaries in Central and West Africa. The platform pairs an editorial Next.js 16 frontend with a dedicated NestJS payment microservice for instant reconciliation across Revolut cards and local Mobile Money (MTN, Airtel).

THE CHALLENGE

Humanitarian organizations operating in Africa struggle with fragmented financial channels, high cross-border conversion fees, and a lack of real-time transaction visibility.

THE TECHNICAL SOLUTION

A modern fullstack architecture combining Next.js 16 and NestJS 11. It features a unified payment engine handling EUR/XAF conversions, automated PDF receipt generation, secure S3 presigned uploads, and real-time Socket.IO WebSocket status updates.

Impact & Key Metrics

60%

Reduction in payment status confirmation latency via Socket.IO WebSockets

100%

Idempotent transactions with zero double-charge risk

2

Major payment channels integrated (Revolut Card & PawaPay Mobile Money)

Full Stack Specifications

Frontend & UI

  • Next.js 16 (App Router)
  • React 19
  • TypeScript
  • TailwindCSS v4
  • Radix UI
  • NextAuth.js v5
  • next-intl
  • Socket.IO Client
  • Tiptap Editor

Backend & Microservices

  • NestJS 11
  • Next.js Server Actions
  • TypeScript
  • RxJS
  • Socket.IO Server
  • Winston Logger
  • Passport JWT

Database & Caching

  • PostgreSQL 16
  • Prisma ORM v7
  • Redis (ioredis)

DevOps & Tooling

  • Docker
  • Puppeteer (PDF Generation)
  • AWS S3 / Cloudflare R2
  • Swagger / OpenAPI 3.0

Third-Party APIs

  • Revolut Merchant API
  • PawaPay Gateway (MTN MoMo & Airtel Money)
  • Nodemailer SMTP

Key Architecture Decisions

01. HIGHLIGHT

Dedicated Payment Orchestration Microservice (NestJS)

Complete isolation of financial logic into a dedicated NestJS service protected by multi-tenant API key headers (x-tenant-id) and Redis rate limiting.

02. HIGHLIGHT

Dual-Provider Webhook Reconciliation & Socket.IO Notifications

Asynchronous callback handling for Revolut/PawaPay payments with real-time UI status updates over Socket.IO room subscriptions, eliminating HTTP polling.

03. HIGHLIGHT

Server-Side PDF Receipt & Export Engine with Puppeteer

Server-side dynamic PDF generation for official tax receipts and financial reports using headless Chromium instances.

Core Features Breakdown

Multi-Tenant Campaign Engine

Enables non-profits to launch campaigns with custom targets, preset amounts, and presigned S3 media storage.

Next.js Server ActionsPrisma ORMAWS S3 / Cloudflare R2Tiptap

Unified Dual-Currency Checkout (EUR / XAF)

Automatic, seamless currency normalization between Diaspora card payments (EUR) and local Mobile Money wallets (XAF).

NestJSRevolut APIPawaPay GatewayZod

Real-Time Payment Tracking Modal

Interactive transaction authorization updates streamed directly to the frontend modal via Socket.IO.

Socket.IO ClientNestJS WebSockets GatewayReact

Automated Tax & Donation PDF Generator

Instant server-side generation and email delivery of official donation receipts upon payment completion.

PuppeteerNodemailerHTML/CSS Templates