AFCON360 is a fusion of PayPal + Airbnb + Uber + Eventbrite + TripAdvisor + Digital ID systems, designed for Africa but scalable globally. It begins as a tournament companion and evolves into a daily super app for travel, tourism, payments, and social identity.
# AFCON360 — Integrated Tournament Management Platform
**Repository status:** Active development · **Updated:** 2026-08-14
AFCON360 is a modular Flask platform for tournament operations, accommodation,
transport, events, identity/KYC, wallet transactions, notifications, media, and
administration. This README describes the repository as it exists today; it is
not a promise that every integration or production deployment is enabled in
every environment.
## Contents
- Architecture
- Modules
- Important invariants
- Technology
- Local setup
- Running services
- Testing and verification
- Configuration
- Documentation
- Known limitations
## Architecture
The application uses Flask's application-factory pattern in `app/__init__.py`.
Blueprints are registered centrally while domain code remains grouped by
module. SQLAlchemy/Flask-Migrate manage persistence and Redis is used for
caching, sessions, rate limiting, and Celery transport where configured.
```text
Browser / API clients
|
v
Flask application factory
|
+-- Auth, identity, profile, KYC, RBAC
+-- Events, accommodation, event accommodation, transport, tourism
+-- Wallet APIs, payments, ledger, reconciliation
+-- Notifications and domain-event backbone
+-- Media, audit, compliance, admin, dashboards
|
+-- PostgreSQL (all application and test configurations)
+-- Redis -> Celery workers and scheduled tasks
```
### Seamless cross-module guest experience
AFCON360 is intentionally modular: each domain remains independently usable,
with its own routes, services, data ownership, and operational rules. The
modules also compose through shared identity, event context, booking
references, notifications, and wallet/payment references, so a guest should
not need to log out or create a separate account when moving between services.
An event owner can use the event's attendee/guest context to coordinate the
connected experience: identify registered guests, arrange accommodation or
transport through the relevant module, and a …