Skip to content
Selected work

Michael Reeves · Portfolio

Programme demo

F1 Championship Manager

A personal tool that bridges PS2 TV spectator mode on PAL Formula One titles with a persistent, interactive championship — seasons, points, and standings the games never track on their own.

My role: product concept, Python/FastAPI dashboard, SQLite data model, and PCSX2-adjacent workflow (drag-and-drop lock-in on race pages; local-only, no cloud accounts).

The idea

Studio Liverpool’s PAL Formula One games on PS2 (2001–2006) are brilliant for spectator mode: you pick a race, watch the AI field, and get the drama of a Grand Prix on the couch. What they do not give you is a serious season layer — cumulative points, your own championship narrative, or a single place to move from “I watched Melbourne” to “here is the table after round three.”

F1 Championship Manager is that bridge: the emulator and game stay the spectacle; the dashboard is the championship brain. You spectate on the PS2, then lock in finish order in the browser when you are ready — same careful, labelled programme-demo discipline as the rest of this portfolio.

What it closes

  • Spectator-only gap — TV mode ends when the credits roll; the tool keeps season context, calendars, and standings across rounds.
  • Trust gap — only locked-in results change points; backups run before destructive season resets.
  • History gap — official vs reversed grids, non-starters flagged, and 2001–2006 season pickers aligned to PAL discs (PCSX2).
  • Ops gap — built-in FAQ, login autostart on macOS, and a read-only PCSX2 identity panel on the championship page.

Implementation

  • Python 3.12+, FastAPI, Jinja templates, SQLite (approved vs staged states).
  • Portfolio hosts a read-only static demo under dashboard/; full lock-in and SQLite live on your Mac via npm run f1cm:launch.
  • Historical calendars/grids imported into staging; human verification before grids promote to official tables.
  • Optional PINE/diagnostic hooks for PCSX2 identity — read-only phase; race capture stays manual and honest.

Verification

This is a personal hobby championship rig, not a commercial product. pytest guards the data layer; browser checks are optional. Open the dashboard on your Mac when you want the live UI; this case study is the public programme snapshot on the portfolio.

Open dashboard Source on GitHub Back to selected work