A minimal motorsport data analytics dashboard built with Dash, FastF1 and Pandas.
This project is a starter MVP to explore race sessions, lap times, positions and telemetry.
app.py- main Dash app and routingpages/- Dash multipage app pages (home.py,analytics.py)data_loader.py- wrappers for FastF1 session loading and cachingcharts.py- Plotly chart helper functionsassets/style.css- minimal stylingrequirements.txt- dependencies
- Create and activate a Python virtualenv (optional but recommended)
python -m venv venv
venv\Scripts\activate- Install requirements
pip install -r requirements.txt- Run the app
python app.py- Open http://127.0.0.1:8050 in your browser.
- The app enables a FastF1 local cache at
.ff1cacheto speed up subsequent loads. - The Analytics page uses FastF1 to load race sessions; the first load may take extra time.
To make this project more production-ready consider restructuring into a package layout and adding tests and CI:
Recommended layout:
- pitwall-analytics/
- pyproject.toml
- .gitignore
- README.md
- src/
- pitwall_analytics/
- init.py
- app.py (or run.py)
- data_loader.py
- charts.py
- pages/
- init.py
- home.py
- analytics.py
- assets/
- pitwall_analytics/
- tests/
- requirements.txt
Why this helps:
src/+ package name reduces accidental imports from project root.pyproject.tomlenables modern packaging and dependency metadata..gitignorekeeps environment and cache files out of git.- Adding
tests/makes it easy to add unit tests and CI pipelines.
If you want, I can refactor the current code into the src/pitwall_analytics package and wire up a small test and Makefile/tasks next.