Machine Learning Model: This app uses Random Forest
Regressor Model, a regression-based machine learning model trained
on historical Formula 1 qualifying data. The model leverages
features such as driver, team, tyre compound, stint, sector times,
and grid position to predict qualifying positions and lap times. The
model is serialized using joblib
and loaded in the
backend for fast inference.
Backend (Flask): The backend is built with
Flask, a lightweight Python web framework. It exposes RESTful API
endpoints for predictions, driver stats, and dynamic circuit/gear
shift visualizations. The backend uses
FastF1
to fetch and process real F1 telemetry and session data, and
matplotlib
for generating circuit and gear shift graphs
on demand.
Frontend (HTML/CSS/JS): The frontend is a modern,
responsive web app styled with a Red Bull-inspired theme. It uses
vanilla JavaScript to interact with the backend, dynamically
populate dropdowns, display prediction results, and render
circuit/gear shift graphs. The UI features a blurred, darkened
background image, animated spinners, and interactive modals for
driver details. All graphs and images are loaded asynchronously for
a smooth user experience.
Technologies Used:
- Python (ML, data processing, backend)
- Flask (API server, static file serving)
- FastF1 (F1 data and telemetry)
- Matplotlib (dynamic graph generation)
- HTML5/CSS3 (responsive UI, theming)
- JavaScript (dynamic frontend, API calls)
- Joblib (model serialization)