0d94cac60c982d2267f0d8154b3dc4e1b2b26f14
🏆 Lara Kiesewetter – Live Schachturnier
Live-Überwachung von Lara Kiesewetters Partien bei der ODJM (Offene Deutsche Jugendmeisterschaft) 2026. Die App lädt automatisch PGN-Daten von der Deutschen Schachjugend, zeigt das aktuelle Spielbrett an und listet alle Partien von Lara.
Features
- Live-Brett – Visuelle Darstellung der aktuellen Partie mit chessboard.js
- Spielerinfo – Anzeige von Namen, ELO und Schachuhr beider Spieler
- Zugliste – Alle Züge der aktuellen Partie mit Klick-Navigation
- Alle Partien – Übersicht aller Runden mit Lara; Klick zum Wechseln
- Live-Erkennung – Automatische Erkennung laufender (unterminierter) Partien
- Auto-Refresh – Aktualisiert die Daten alle 60 Sekunden
- Proxy-Server – Lokaler Python-Server mit PGN-Caching und CORS-Unterstützung
Projektstruktur
├── app.js # Hauptlogik (Brett, UI, Auto-Refresh)
├── index.html # HTML-Grundgerüst
├── style.css # Dark-Theme-Styling
├── pgn-parser.js # PGN-Parser (Header + Züge extrahieren)
├── server.py # Lokaler Proxy-Server (Python 3)
├── cache/ # PGN-Cache (wird automatisch angelegt)
└── lara-chess/ # (optional – reserviert für Erweiterungen)
Setup
Voraussetzungen
- Python 3.6+ für den Proxy-Server
- Browser (Chrome, Firefox, Edge)
Installation & Start
-
Proxy-Server starten:
python server.pyDer Server läuft auf
http://localhost:8111. -
Öffne die App im Browser:
http://localhost:8111(Der Server serviert auch die statischen Dateien.)
Ohne Proxy (direkter Dateizugriff)
Öffne index.html direkt im Browser. Hinweis: Der CORS-Proxy (server.py) muss trotzdem laufen, da der PGN-Endpunkt keine CORS-Header setzt.
Technik
| Komponente | Technologie |
|---|---|
| Schachbrett | chessboard.js |
| Schachlogik | chess.js |
| UI | HTML, CSS, Vanilla JS |
| Proxy-Server | Python http.server (ohne externe Abhängigkeiten) |
| PGN-Quelle | deutsche-schachjugend.de (ODJM 2026) |
Konfiguration
Die wichtigsten Konstanten in app.js:
const PGN_URL = 'https://www.deutsche-schachjugend.de/2026/odjm-d/partien/gesamt-utf8.pgn';
const REFRESH_INTERVAL = 60000; // Auto-Refresh alle 60s
const PLAYER_NAME = 'Kiesewetter, Lara';
Im server.py lässt sich der Cache-TTL anpassen:
CACHE_TTL = 30 # Sekunden
Description
Languages
JavaScript
52.7%
Python
19%
CSS
17.8%
HTML
10.5%