← All projects

Imarika Super Cup

Imarika Super Cup

Imarika Super Cup ("Hatuzeeki") is a full-stack Django platform running a youth football tournament in Kenya end-to-end. It’snot just a results website, but the entire operational backbone: team and player registration with a two-step admin approval chain, automatic age-category classification against a birth-date window, fixture scheduling, live standings with signal-driven auto-recomputation, knockout seeding through to a derived 1st–10th final classification, and the Imarika Index; a permanent, cross-edition ranking modelled on a points system that never resets between tournaments.

It's built as one Django project exposing three interfaces over a single shared rule set; a server-rendered public website, a rebranded admin portal with a live operations dashboard, and a JWT-authenticated REST API with business logic centralized in service functions and Django signals so the same rule (how standings are computed, who can edit what, how a player's category is decided) is never duplicated across the three.

Beyond the competition logic: digital player ID cards (WeasyPrint-rendered PDFs with QR check-in), M-Pesa payments through Safaricom's Daraja API (STK Push, async callback handling, and a Celery Beat fallback that polls for pushes that never got a callback), a media gallery with automatic WebP thumbnailing, and branded transactional email. Security includes RBAC enforced identically at the API and website layers, django-axes login lockout, soft-delete with a full audit trail, and a deliberate split between public player data and protected identity documents (a minor's birth certificate is never reachable through any public endpoint).

CeleryCloudflareCloudflare R2Daraja APIDjangoPostgreSQLPythonRedisWeasyPrintHTMLCSS

Related projects