Case Study

NIHub Attendance System

Multi-client event management and QR check-in platform with real-time dashboards, automated reporting, and a self-service attendee portal.

NIHub Attendance System dashboard interface

Problem

Event organizers at Nigerian hub events relied on manual sign-in sheets to track attendance. This made real-time reporting impossible, exported data was error-prone and slow to compile, and there was no way to verify attendee check-in status without physically scanning lists. The system also needed to support multiple concurrent events with different organizers and departments.

Solution

A full-stack event management platform built with FastAPI and PostgreSQL on the backend, React for the staff dashboard, and Flutter for the mobile check-in app. Each event gets a unique QR code that attendees scan to check in and out; staff see live attendance counts on a real-time dashboard.

The system supports multiple clients (departments/organizations), attendee self-service registration via department codes, email verification for attendees, and one-click spreadsheet export for event organizers.

Architecture

NIHub system architecture overview

React Staff Dashboard → FastAPI REST API → PostgreSQL → Flutter Mobile App (QR check-in)

Technical Decisions

QR-based check-in

Each event generates a unique QR code containing a signed token. Mobile apps decode and verify the token locally, then send check-in requests to the API — no internet required at the venue for the scan itself.

JWT with refresh token rotation

Staff authentication uses Argon2id password hashing with short-lived access tokens and rotating refresh tokens. If a refresh token is compromised, it's immediately invalidated — reducing the window of exposure.

PostgreSQL + Alembic migrations

Schema changes across deployments are managed with Alembic, making it safe to iterate the data model without manual migration scripts or downtime.

Caddy reverse proxy

Caddy handles HTTPS termination and routes traffic to the appropriate service (API, frontend, mobile API) — single public entry point with automatic TLS certificates.

Results

3
Clients supported concurrently
Live
Attendance dashboard
1-click
Spreadsheet export

Stack

FastAPIPostgreSQLAlembicReact 19ViteFlutterRiverpodDockerCaddy 2JWT (Argon2id)
← All ProjectsQuiz Whiz →