Skip to content

eskres/boxboxbox

Repository files navigation

BoxBoxBox

Explore Formula 1 race data through interactive charts and visualisations.

Stack

Infra

  • Docker
  • Python 3.12+
  • Node.js 22+

Backend

  • FastAPI
  • Strawberry GraphQL
  • SQLAlchemy 2.0
  • OpenF1 API proxy with Redis caching and rate limiting
  • PostgreSQL with F1DB, containerised with Docker

Frontend

  • Next.js (App Router)
  • D3.js
  • Tailwind CSS

Local development

cp .env.example .env
docker compose up -d
npm ci

API

cd api
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reload

Web

npx nx dev web

Database setup

Download the latest PostgreSQL export from the F1DB releases page, then restore it:

cat f1db-sql-postgresql.sql | docker exec -i <postgres-container> psql -U f1 f1db

Data sources

  • F1DB - historical race results and pit stop data
  • OpenF1 - live and recent session telemetry

About

A F1 data visualisation app. Built as a learning project with Next.js, TypeScript, React, D3, FastAPI, Strawberry GraphQL and SQLAlchemy. Data is sourced from F1DB and OpenF1.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors