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 (
approvedvsstagedstates). - Portfolio hosts a read-only static demo under
dashboard/; full lock-in and SQLite live on your Mac vianpm 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.