Team Leadership Project

Led a team of 5 Backend Engineers to integrate an event management system on the official ATC Africa site. Focused on scalability, performance optimization, and seamless user experience.

Brief icon

Brief

Motivation

ATC Africa needed a robust, backend-powered Event Management System to eliminate manual content updates and empower organizers to manage events end-to-end. The goal was to improve operational efficiency, transparency, and audience engagement across HQ, State, and Campus events.

Challenges

  • Manual workflows caused slow event updates and inconsistent data
  • No lifecycle automation to transition events post-date
  • Access control needed for organizers, managers, and admins
  • Scalable media handling and caching for a content-heavy site

Solutions

  • Built a NestJS API with structured event CRUD and roles/permissions
  • Implemented lifecycle automation with scheduled jobs and reminder emails
  • Added RBAC enforcing Organizer, Community Manager, and Admin scopes
  • Integrated AWS S3 for media and Redis caching for performance

Impact

The platform streamlines event operations, reduces developer bottlenecks, and showcases concluded events with measurable outcomes, boosting credibility and participation for future events.

Architecture icon

Architecture

System Overview

Service-oriented backend built with NestJS exposing REST endpoints consumed by the official site. PostgreSQL (RDS) persists core entities, Redis accelerates reads, AWS S3 stores media, and Brevo handles transactional emails for lifecycle reminders.

System Flow

Organizers create/update events → RBAC validates permissions → data stored in PostgreSQL → scheduled jobs monitor event dates → post-date, the system requests outcomes (media, attendance, slides) via Brevo emails → once submitted, status transitions to Concluded and content becomes visible on the site.

Technology Choices

Backend

NestJSNestJS

Opinionated modular architecture with DI and decorators

REST APIREST API

Simple, predictable integration surface for the website

Deployment

AWS

RDS for PostgreSQL and S3 for object storage

DockerDocker

Consistent runtime across environments and CI

Database

PostgreSQLPostgreSQL

Reliable relational store hosted on Amazon RDS

RedisRedis

Caching with cache-manager to reduce response latency

Tools

GitHub

Source control and team collaboration

JestJest

Automated tests for critical modules

Key Features

  • Event CRUD with status tracking (Draft, Pending Approval, Approved, Concluded)
  • Lifecycle automation with reminders and state transitions
  • Role-based access control (Organizer, Community Manager, Admin)
  • Media handling via S3 and API endpoints for galleries
  • Caching layer for high-traffic endpoints
UML Diagram icon

UML Diagram

System Architecture

Sequence of event creation, approval, lifecycle monitoring, and conclusion with media submission and publication.

ATC Africa Integration UML Diagram

Complete system architecture and data flow diagram

Flow Explanation

Create/approve event → scheduler checks event date → if exceeded, email reminders are sent → organizer submits outcomes → API validates and persists → status = Concluded → frontend displays in concluded section.

System Components

  • NestJS API
  • PostgreSQL (RDS)
  • Redis Cache
  • AWS S3 Storage
  • Email Service (Brevo)
Database Design icon

Database Design

Database Overview

Normalized schema around events, roles, and media artifacts. Event status and timestamps support automation; audit fields enable governance.

ATC Africa Integration Database Schema

Core entities include events, users, roles/permissions, speakers, sponsors, media assets, and audit trails. Status fields drive lifecycle transitions.

Design Decisions

  • Explicit event status machine for clear lifecycle handling
  • RBAC tables separating users, roles, and permissions
  • Media assets stored on S3 with DB metadata and signed access
  • Indexes on event dates and status for dashboard queries

Database Tables

users

Platform users with role assignments

roles

Role definitions (Organizer/Manager/Admin)

user_roles

Junction for user-to-role mapping

events

Event details, status, schedule, and metadata

event_speakers

Speakers linked to events

event_sponsors

Sponsors linked to events

media_assets

References to S3 objects and captions

cta_modals

Configurable CTAs for site engagement

Challenges & Solutions icon

Challenges & Solutions

Challenge Overview

Transforming a static process into a dynamic, automated system required strong domain modeling, secure access control, and robust scheduling and media flows.

1

Role-Based Access Control at Scale

Different actors needed scoped access to create, approve, and conclude events.

2

Automated Event Lifecycle

Events must transition post-date and prompt organizers for outcomes.

3

Media Storage and Performance

High-resolution photos and assets needed reliable storage and fast delivery.

Key Learnings

The system now reliably manages events end-to-end with security, automation, and performant content delivery, reducing operational friction for the ATC Africa team.