Back to projects

Le Club

Unified Platform for Football Operations and Recruitment

Distributed SystemsBackend EngineeringGraphQLNode.jsTypeScriptOpenID Connect
Le Club's logo

Football has a coordination problem. Players, coaches, and clubs constantly move between teams, but the tools connecting them—training schedules, match history, recruitment visibility—are fragmented across WhatsApp, spreadsheets, and federation websites.

I designed and built Le Club, a unified platform that centralizes team management, player performance, and recruitment into a single system.

A shared data model powers multiple experiences: coaches manage trainings and squads, players track performance, clubs organize across teams, and recruiters discover talent with verified data.


Core Capabilities

  • Multi-role platform (players, coaches, clubs, recruiters) with unified access
  • GraphQL API covering teams, players, matches, trainings, and competitions
  • Identity and authorization system based on OpenID Connect (OIDC)
  • Real-time notification system for events and user interactions
  • Data ingestion pipeline aggregating verified football data from external sources

Key Results

  • Replaced fragmented workflows with a single, coherent multi-role platform
  • Unified identity model across backend and clients, avoiding duplicated access logic
  • Secure data access via role-based authorization and row-level security
  • Continuous enrichment of platform data through large-scale ingestion pipelines

Architecture Overview

Le Club is a polyglot TypeScript/Python monorepo composed of distributed services:

  • API (Node.js + Koa + Apollo GraphQL)
    Exposes a unified domain model for clubs, teams, players, and events, backed by MongoDB
  • Identity Layer (OIDC Provider)
    Handles authentication and authorization with role management and Hasura integration
  • Notifications (RabbitMQ + Server-Sent Events)
    Decoupled real-time event delivery system
  • Data Pipeline (Python + Celery + Redis)
    Scrapes and normalizes football data (FFF, RBFA, Soccerway, etc.)

Technical Highlights

  • Built a full OpenID Connect provider with PKCE flows and email/phone authentication
  • Modelled event hierarchy using Mongoose discriminators (trainings, matches, tournaments)
  • Implemented real-time notifications via SSE backed by RabbitMQ
  • Designed a distributed ETL pipeline with proxy rotation (Scrapoxy) for large-scale scraping
  • Shared TypeScript types and configuration across a multi-service monorepo

My Role

Owned the system end-to-end:

  • Designed architecture and data model
  • Built the GraphQL API and identity layer
  • Implemented real-time notification infrastructure
  • Developed the data ingestion pipeline
  • Contributed to frontend applications (React, video upload, match annotation)