Add README with project documentation
This commit is contained in:
76
README.md
Normal file
76
README.md
Normal 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
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user