This project is an ETL pipeline and web application dashboard designed to analyze and visualize Formula 1 racing data. It provides insights on overall lap times, lap telemetry, and tire usage. It uses Go for the backend, Python for data ingestion, and TypeScript for the frontend.
It uses the FastF1 package to gather data.
- Overall Lap Times: View and compare lap times across different drivers
- Lap Telemetry: Analyze telemetry data for each lap, both race and qualifying
- Tire Usage: Visualize tire usage patterns for each driver
- Driver Comparison: Compare performance metrics between drivers
- Node.js (v16 or later) or Bun (v1.2 or later)
- Python (v3.8 or later)
- Go (v1.22 or later)
-
Clone the repository:
git clone https://github.com/jordanjanakievski/go-racing-analytics.git
-
Navigate to the project directory:
cd go-racing-analytics -
Install frontend dependencies:
cd frontend bun install -
Install backend dependencies:
cd backend go mod tidy -
Set Up Data Ingestion
python setup.py
-
Start the backend server:
go run main.go
-
Start the frontend development server:
cd frontend bun dev -
Open your browser and navigate to
http://localhost:3000to view the application.
-
Run the docker compose command to build and start the application:
docker compose up --build
To add new data to the application, follow these steps:
python fetch_and_populate.py --year XXXX --event LOCATION --session R
python fetch_and_populate.py --year XXXX --event LOCATION --session QFamiliarize yourself with FastF1 for details on how to specify the year and event.

