Wagadu Hub — the NGO's internal portal
A single, secure, mobile-first (PWA) internal portal: HR, mail, tasks, documents, messaging, video calls and calendar for the NGO.

Day to day, the NGO Wagadu Africa manages its teams, its mail and its documents. The Blue Track programme needs a shared internal tool to coordinate all of it.
Centralise internal processes in one portal, with fine-grained permissions and an audit log, usable on a phone too.
Full-stack design and development
Technologies- Django
- DRF
- Next.js
- React
- PostgreSQL
- Redis
- Celery
- MinIO
- Docker
- Nginx
Technical implementation
API and business logic
Django 5 and Django REST Framework: JWT authentication, roles and permissions with individual exceptions, reusable validation workflows, audit log.
Interface
Next.js / React as a PWA: installable on a phone, a single interface for web and mobile.
Data and background jobs
PostgreSQL 16; Redis and Celery (notifications, reminders, e-mails, PDF, log purge); S3-compatible MinIO file storage.
Communication
Rocket.Chat (SSO) and Jitsi Meet integrations, enabled through configuration; standalone calendar.
Infrastructure
Docker Compose behind Nginx (TLS, security headers, rate limiting), Cloudflare in front.
Quality
171 pytest tests, 86 end-to-end checks, eslint, vitest and Next.js build in CI; architecture, database and deployment documentation.
- I designed the architecture: Django REST API, installable Next.js interface (PWA), PostgreSQL, Redis and Celery, MinIO storage.
- I delivered the six phases of the specification: foundation, HR and mail, tasks, documents, real-time communication, cross-cutting requests.
- I modelled roles, permissions (with individual exceptions) and reusable validation workflows.
- I wrote the tests and the CI, and prepared the Docker Compose deployment behind Nginx.
- HR: records, contracts, leave with approval
- Mail: automatic numbering, assignment, traceability
- Tasks: kanban, calendar, recurrence, reminders
- Documents: targeted distribution, read tracking, full-text search
- Messaging, video calls and calendar
- Audit log, roles and individual exceptions
- specification phases delivered
- pytest tests
- end-to-end checks
- Next.js · PWA → Nginx · TLS
- Nginx · TLS → Django + DRF
- Django + DRF → PostgreSQL 16
- Django + DRF → Redis
- Redis → Celery (worker)
- Django + DRF → MinIO (S3)
- Django + DRF → Rocket.Chat · Jitsi
- Docker · Linux → Nginx · TLS