77 lines
2.7 KiB
Markdown
77 lines
2.7 KiB
Markdown
# 🏆 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
|
||
```
|