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