Ein Test mit Vibecoding.
- JavaScript 67.6%
- HTML 20.1%
- CSS 11.3%
- Shell 1%
| .claude | ||
| css | ||
| js | ||
| scripts | ||
| src | ||
| .gitignore | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| vite.config.js | ||
F1 View
Interaktive Statistik-Visualisierung für Formel-1-Daten — als statische Web-App ohne Backend.
Features
- Mehrere Analysen: Rennsiege, Podien, Pole Positions, Schnellste Runden, Punkte (historisch & normalisiert)
- Flexible Gruppierung: nach Fahrer, Konstrukteur, Land oder Kontinent; optional mit einer zweiten Gruppierungsebene
- Filter: Zeitraum (Jahr von/bis), Kontinent, Land, Fahrer, Konstrukteur, Motor, Rennstrecke
- Normalisierung: absolute Werte, pro Rennantritt oder pro Saison
- Saisonverlauf: Liniendiagramm für die Entwicklung der Werte über eine Saison
- Karriere-Tooltip: Hover auf einen Fahrernamen zeigt, in welchen Jahren er für welche Teams gefahren ist
- Landesflaggen bei Fahrern, Konstrukteuren und Ländern
- Balken- und Tabellenansicht, Top-N-Begrenzung
Datenquelle
Die App nutzt den f1db-Datensatz im JSON-Splitted-Format. Die Datendateien liegen unter public/data/ und sind nicht im Repository enthalten.
Setup
# Abhängigkeiten installieren
npm install
# F1-Daten herunterladen (erfordert curl, jq, unzip)
./scripts/update-data.sh
# Entwicklungsserver starten (http://localhost:5173)
npm run dev
# Produktions-Build erstellen (Ausgabe: public/)
npm run build
npm run build leert public/ nicht vollständig (emptyOutDir: false), damit die Datendateien unter public/data/ erhalten bleiben.
Technik
| Build | Vite 6 |
| UI | Bootstrap 5.3 + Bootstrap Icons |
| Charts | Chart.js 4.4 |
| Sprache | Vanilla JS (ES-Module) |
| Backend | keins — rein statisch |
Projektstruktur
f1view/
├── src/ # Vite-Quellverzeichnis
│ ├── index.html
│ ├── css/style.css
│ └── js/
│ ├── app.js # Hauptlogik
│ ├── store.js # Datenlader mit Cache
│ └── analyses.js # Analyse-Definitionen
├── public/ # Deploy-Root (Datendateien hier, nicht im Repo)
│ └── data/ # f1db JSON-Dateien
├── static/ # Statische Dateien (werden 1:1 nach public/ kopiert)
├── scripts/
│ └── update-data.sh # Daten-Downloader
└── vite.config.js
Daten aktualisieren
./scripts/update-data.sh # nur wenn neue Version verfügbar
./scripts/update-data.sh --force # erzwingen
Das Skript lädt automatisch die neueste f1db-Version von GitHub herunter und entpackt die JSON-Dateien nach public/data/.