🏆 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

  1. Proxy-Server starten:

    python server.py
    

    Der Server läuft auf http://localhost:8111.

  2. Ö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
No description provided
Readme 631 KiB
Languages
JavaScript 52.7%
Python 19%
CSS 17.8%
HTML 10.5%