Skip to content
LGLorenzo Gallone
All work

Real-time · PWA

Fanta F1

Personal project · 2023 – today

A fantasy game for a group of friends, built as a full product: players pick the podium and their jokers for every Grand Prix and sprint, and the app does the rest, from scoring to reminders.

The app

Screens from the installed app (PWA), running locally against the Firebase emulators with test data.

  • Fanta F1 home with the next Grand Prix, the lineup deadline countdown and the standings
    Home: the next race, the countdown to the lineup deadline and live standings.
  • Lineup form with podium picks and jokers for the Las Vegas Grand Prix
    Lineup for the next Grand Prix, with podium picks, jokers and duplicate checks.
  • Race results with the official podium and every player's lineup and points
    Race results with every player's lineup and the points it earned.
  • Player statistics with a bar chart of points per Grand Prix
    Per-player statistics: points per Grand Prix and championship position.
  • Prompt asking to enable race reminders one hour and five minutes before the start
    Push reminders before every race, offered on the first launch of the installed app.
installable on any phone
PWAinstallable on any phone
push reminders before qualifying
3push reminders before qualifying
deploy on every push to main
CI/CDdeploy on every push to main
From the track to the standings
  1. Jolpica F1 API
  2. Scheduled sync
  3. Hash check
  4. Firestore
  5. Live standings

The game

Points for the podium in order, jokers for a driver on the podium, sprint races, a bonus joker for a perfect podium and double points at the season finale. Mid-season, players also predict the drivers' and constructors' championships.

Built for real use

  • Live leaderboard with a points-progression chart, race history and per-player statistics.
  • Formation entry with search, team logos, duplicate checks and a countdown to the deadline.
  • Admin tools for results, late-submission penalties, backups and restores.

Automation

Scheduled Cloud Functions keep the calendar and drivers in sync with the Jolpica F1 API. The sync is cheap by design: when the data hash is unchanged it stops after one read and one write, it never deletes, and it leaves races with saved results alone. Push notifications remind players the evening before, one hour and five minutes before qualifying.

Delivery

Firestore security rules and admin custom claims protect the data. GitHub Actions builds and deploys on every push to main, and seed scripts run the whole app against the Firebase emulators.

Stack

ReactViteFirebaseFirestoreCloud FunctionsCloud MessagingRechartsGitHub Actions

Next projectZitto e Corri