You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+15-51Lines changed: 15 additions & 51 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,10 +32,10 @@ A web app for watching Formula 1 sessions with real timing data, car positions o
32
32
## Architecture
33
33
34
34
-**Frontend**: React + Vite with Tailwind CSS, served by Nginx
35
-
-**Backend**: Go web service - serves pre-computed data from local storage
36
-
-**Data Source**: [FastF1](https://github.com/theOehrly/Fast-F1) (used during data processing only)
35
+
-**Backend**: Go web service - serves pre-computed data from SQLite (`/data/f1.db`)
36
+
-**Data Source**: Official F1 timing endpoints (`livetiming.formula1.com`) ingested directly by the Go backend
37
37
38
-
Session data is processed once and stored locally (or in R2 for remote access). You can either pre-compute data in bulk ahead of time, or let the app process sessions on demand when you select them.
38
+
Session data is processed once and stored in SQLite (`/data/f1.db`). You can queue downloads in the UI, or let the app process sessions on demand when you select them.
@@ -221,31 +205,11 @@ There are two ways to get session data into the app:
221
205
222
206
#### Option A: On-demand processing (recommended for getting started)
223
207
224
-
Simply select any past session from the homepage. If the data hasn't been processed yet, the app will automatically fetch and process it using FastF1 and start the replay. The first load of a session takes **1-3 minutes**. After that, it's instant.
208
+
Select any past session from the homepage. If the data has not been processed yet, the backend will fetch and process it directly in Go, then store it in SQLite. The first load typically takes **1-3 minutes**.
225
209
226
-
#### Option B: Bulk pre-compute (recommended for preparing a full season)
210
+
#### Option B: Queue background downloads (recommended for preparing a full season)
227
211
228
-
Use the CLI script to process sessions ahead of time. This is useful if you want all data ready before you start using the app.
229
-
230
-
```bash
231
-
# Data fetcher (Python)
232
-
cd data-fetcher
233
-
python -m venv venv
234
-
source venv/bin/activate
235
-
pip install -r requirements-worker.txt
236
-
237
-
# Process a specific race weekend
238
-
python precompute.py 2026 --round 1
239
-
240
-
# Process only the race session (skip practice/qualifying)
241
-
python precompute.py 2026 --round 1 --session R
242
-
243
-
# Process an entire season (will take several hours)
244
-
python precompute.py 2025 --skip-existing
245
-
246
-
# Process multiple years
247
-
python precompute.py 2024 2025 --skip-existing
248
-
```
212
+
Use the Downloads page to enqueue sessions ahead of time (single session, weekend, or season scopes). The queue runs automatically in the backend.
249
213
250
214
**Timing estimates:**
251
215
- A single session (e.g. one race) takes **1-3 minutes**
@@ -256,7 +220,7 @@ The app also includes a background task that automatically checks for and proces
256
220
257
221
## Acknowledgements
258
222
259
-
This project is powered by [FastF1](https://github.com/theOehrly/Fast-F1), an open-source Python library for accessing Formula 1 timing and telemetry data. FastF1 is the original inspiration and data source for this project - without it, none of this would be possible.
223
+
Thanks to the broader motorsport telemetry/open-source community and tools that informed earlier iterations of this project.
0 commit comments