Files
lara-schach-live/README.md

77 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🏆 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
```