Web application · Sports management

LBC Championships

The project

In Cameroon, the Ligue de Basketball du Centre copied paper match sheets and worked out its standings by hand, trading photos on WhatsApp. I designed and built the application that replaces this: the secretariat organises the season, generates fixtures and enters scores, and the public reads standings, results and fixtures on the league’s site.

Period
September – October 2026
My role
Project for the Ligue de Basketball du Centre: design and development, end to end.
Result
Application ready for the 2026-2027 season, 94 automated tests.

Video walkthrough

Two minutes with a French voice-over: the public site, the generated fixtures, score entry and the report. Demo data.

What matters in the product

  • Standings that are calculated

    Standings are never typed in or stored: they are recomputed on every view from the scores. They cannot contradict the matches, which ends disputes.

  • FIBA rules, tie-breaks included

    Win 2 points, loss 1, forfeit 0, and cascading tie-breaks on head-to-head results. The scale is adjustable per category.

  • Generated fixtures

    One click produces a single or double round-robin using Berger’s method: nobody plays twice on the same matchday. Pools are supported.

  • Batch entry, at the office

    One screen per matchday to copy the match sheets, with forfeits and postponements.

  • Reading the match sheets

    The secretariat photographs the sheet: a vision model reads the quarter-by-quarter scores, the app refuses to save if the breakdown and the final score do not agree, and nothing is written without review. Optional.

  • Official documents

    Standings, fixtures, scheduling and report on A4, with the league letterhead and signature spaces, ready to print or save as PDF.

Three parts, one project

  1. League back office

    Password-protected, with two roles (administrator, results entry): seasons, categories, teams with logos, pools, fixtures, scores, venue scheduling, reports.

    • Next.js
    • React
    • TypeScript
    • Gemini
  2. Public site

    Standings, results, upcoming matches and fixtures per category, readable on a phone. A category only appears once the secretariat publishes it.

    • Next.js
    • React
    • Tailwind CSS
  3. Data and reliability

    PostgreSQL with Prisma, hosting planned on Vercel and Supabase, and 94 automated tests covering fixtures, standings, match sheets and logos.

    • PostgreSQL
    • Prisma
    • Supabase
    • Vercel

The screens

The application with demo data: fictional clubs, randomly drawn scores.

  • LBC Championships, The screens 1/7
  • LBC Championships, The screens 2/7
  • LBC Championships, The screens 3/7
  • LBC Championships, The screens 4/7
  • LBC Championships, The screens 5/7
  • LBC Championships, The screens 6/7
  • LBC Championships, The screens 7/7