Doku aktualisiert: README aktualisiert (Features, Projektstruktur, Env-Vars), Doku-Prüf-Regel in AGENTS.md
This commit is contained in:
@@ -4,4 +4,5 @@
|
|||||||
- Commits und Push erfolgen nur durch expliziten Befehl des Nutzers.
|
- Commits und Push erfolgen nur durch expliziten Befehl des Nutzers.
|
||||||
- Der Server (server.py) wird immer unsichtbar gestartet: `Start-Process -NoNewWindow -FilePath "python" -ArgumentList "server.py"`
|
- Der Server (server.py) wird immer unsichtbar gestartet: `Start-Process -NoNewWindow -FilePath "python" -ArgumentList "server.py"`
|
||||||
- Bei Updates (Polling/Code-Änderungen) niemals den aktuell angezeigten Zug wechseln. Der Benutzer bleibt auf dem von ihm ausgewählten Zug.
|
- Bei Updates (Polling/Code-Änderungen) niemals den aktuell angezeigten Zug wechseln. Der Benutzer bleibt auf dem von ihm ausgewählten Zug.
|
||||||
|
- Nach jeder Code-Änderung muss die Doku (README.md) auf Richtigkeit und Vollständigkeit geprüft und bei Bedarf aktualisiert werden (Features, Projektstruktur, Konfiguration, Umgebungsvariablen, Technik-Tabelle).
|
||||||
|
|
||||||
|
|||||||
71
README.md
71
README.md
@@ -1,4 +1,4 @@
|
|||||||
# 🏆 Lara Kiesewetter – Live Schachturnier
|
# 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.
|
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.
|
||||||
|
|
||||||
@@ -7,23 +7,26 @@ Live-Überwachung von Lara Kiesewetters Partien bei der **ODJM (Offene Deutsche
|
|||||||
## Features
|
## Features
|
||||||
|
|
||||||
- **Live-Brett** – Visuelle Darstellung der aktuellen Partie mit chessboard.js
|
- **Live-Brett** – Visuelle Darstellung der aktuellen Partie mit chessboard.js
|
||||||
|
- **Stockfish-Analyse** – Bewertungsbalken (Eval-Bar) mit Live-Score in Bauerneinheiten, powered by Stockfish-Engine
|
||||||
- **Spielerinfo** – Anzeige von Namen, ELO und Schachuhr beider Spieler
|
- **Spielerinfo** – Anzeige von Namen, ELO und Schachuhr beider Spieler
|
||||||
- **Zugliste** – Alle Züge der aktuellen Partie mit Klick-Navigation
|
- **Zugliste** – Alle Züge der aktuellen Partie mit Klick-Navigation und Pfeiltasten-Steuerung
|
||||||
- **Alle Partien** – Übersicht aller Runden mit Lara; Klick zum Wechseln
|
- **Alle Partien** – Übersicht aller Runden mit Lara; Klick zum Wechseln
|
||||||
- **Live-Erkennung** – Automatische Erkennung laufender (unterminierter) Partien
|
- **Live-Erkennung** – Automatische Erkennung laufender (unterminierter) Partien
|
||||||
- **Auto-Refresh** – Aktualisiert die Daten alle 60 Sekunden
|
- **Turniertabelle** – Tabellenplatz, Punkte, Siege/Unentschieden/Niederlagen von Lara
|
||||||
- **Proxy-Server** – Lokaler Python-Server mit PGN-Caching und CORS-Unterstützung
|
- **Auto-Refresh** – Aktualisiert die Daten alle 30 Sekunden
|
||||||
|
- **Proxy-Server** – Lokaler Python-Server mit Stockfish-Engine-Wrapper, PGN-Proxy und statischem File-Serving
|
||||||
|
|
||||||
## Projektstruktur
|
## Projektstruktur
|
||||||
|
|
||||||
```text
|
```text
|
||||||
├── app.js # Hauptlogik (Brett, UI, Auto-Refresh)
|
|
||||||
├── index.html # HTML-Grundgerüst
|
├── index.html # HTML-Grundgerüst
|
||||||
├── style.css # Dark-Theme-Styling
|
├── style.css # Dark-Theme-Styling (responsive)
|
||||||
├── pgn-parser.js # PGN-Parser (Header + Züge extrahieren)
|
├── js/
|
||||||
├── server.py # Lokaler Proxy-Server (Python 3)
|
│ ├── app.js # Hauptlogik (Brett, UI, Auto-Refresh, Eval-Bar)
|
||||||
├── cache/ # PGN-Cache (wird automatisch angelegt)
|
│ └── pgn-parser.js # PGN-Parser (Header + Züge extrahieren)
|
||||||
└── lara-chess/ # (optional – reserviert für Erweiterungen)
|
├── server.py # Lokaler Proxy-Server + Stockfish-Engine (Python 3)
|
||||||
|
├── cache/ # PGN- und Standings-Cache
|
||||||
|
└── stockfish.exe # Stockfish-Schachengine (Windows)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
@@ -31,6 +34,7 @@ Live-Überwachung von Lara Kiesewetters Partien bei der **ODJM (Offene Deutsche
|
|||||||
### Voraussetzungen
|
### Voraussetzungen
|
||||||
|
|
||||||
- **Python 3.6+** für den Proxy-Server
|
- **Python 3.6+** für den Proxy-Server
|
||||||
|
- **Stockfish** (optional, für Analyse) – auf Windows: `stockfish.exe` im Projektverzeichnis
|
||||||
- **Browser** (Chrome, Firefox, Edge)
|
- **Browser** (Chrome, Firefox, Edge)
|
||||||
|
|
||||||
### Installation & Start
|
### Installation & Start
|
||||||
@@ -47,19 +51,16 @@ Live-Überwachung von Lara Kiesewetters Partien bei der **ODJM (Offene Deutsche
|
|||||||
```
|
```
|
||||||
(Der Server serviert auch die statischen Dateien.)
|
(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
|
## Technik
|
||||||
|
|
||||||
| Komponente | Technologie |
|
| Komponente | Technologie |
|
||||||
| ------------------ | --------------------------------------------------- |
|
| ------------------ | ------------------------------------------------------------ |
|
||||||
| Schachbrett | [chessboard.js](https://github.com/oakmac/chessboardjs) |
|
| Schachbrett | [chessboard.js](https://github.com/oakmac/chessboardjs) |
|
||||||
| Schachlogik | [chess.js](https://github.com/jhlywa/chess.js) |
|
| Schachlogik | [chess.js](https://github.com/jhlywa/chess.js) |
|
||||||
| UI | HTML, CSS, Vanilla JS |
|
| Stockfish-Analyse | Stockfish Engine (lokal, via POST `/evaluate`) |
|
||||||
| Proxy-Server | Python http.server (ohne externe Abhängigkeiten) |
|
| UI | HTML, CSS, Vanilla JS, jQuery |
|
||||||
| PGN-Quelle | deutsche-schachjugend.de (ODJM 2026) |
|
| Proxy-Server | Python http.server (subprocess, threading, NDJSON-Streaming) |
|
||||||
|
| PGN-Quelle | deutsche-schachjugend.de (ODJM 2026) |
|
||||||
|
|
||||||
## Deployment
|
## Deployment
|
||||||
|
|
||||||
@@ -126,26 +127,8 @@ server {
|
|||||||
|
|
||||||
### Umgebungsvariablen (optional)
|
### Umgebungsvariablen (optional)
|
||||||
|
|
||||||
In `server.py` können Port und PGN-URL über Umgebungsvariablen überschrieben werden:
|
| Variable | Default | Beschreibung |
|
||||||
|
| ------------------- | ------------------------------ | ------------------------------- |
|
||||||
| Variable | Default | Beschreibung |
|
| `PORT` | `8111` | Server-Port |
|
||||||
|---|---|---|
|
| `STOCKFISH_PATH` | `stockfish.exe` / `stockfish` | Pfad zur Stockfish-Engine |
|
||||||
| `PORT` | `8111` | Server-Port |
|
| `STOCKFISH_DEPTH` | `25` | Stockfish-Suchtiefe |
|
||||||
| `PGN_URL` | (siehe server.py) | Quelle der PGN-Daten |
|
|
||||||
| `CACHE_TTL` | `30` | Cache-Gültigkeit in Sekunden |
|
|
||||||
|
|
||||||
## 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