diff --git a/README.md b/README.md new file mode 100644 index 0000000..b5cb515 --- /dev/null +++ b/README.md @@ -0,0 +1,76 @@ +# 🏆 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:** + ```bash + 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](https://github.com/oakmac/chessboardjs) | +| Schachlogik | [chess.js](https://github.com/jhlywa/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`: + +```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: + +```python +CACHE_TTL = 30 # Sekunden +```