Add README with project documentation

This commit is contained in:
2026-05-24 14:25:00 +02:00
parent bca32d51eb
commit aec8ef9036

76
README.md Normal file
View File

@@ -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
```