Add blank lines
This commit is contained in:
30
README.md
30
README.md
@@ -3,6 +3,7 @@
|
|||||||
Hilfs‑Web‑App für deutsche Wordle‑Rätsel. Nutzer geben bekannte Buchstaben/Positionen an, zusätzlich enthaltene und ausgeschlossene Buchstaben. Die App schlägt passende 5‑Buchstaben‑Wörter vor und zeigt die jeweilige Quelle (OT = OpenThesaurus, WF = wordfreq).
|
Hilfs‑Web‑App für deutsche Wordle‑Rätsel. Nutzer geben bekannte Buchstaben/Positionen an, zusätzlich enthaltene und ausgeschlossene Buchstaben. Die App schlägt passende 5‑Buchstaben‑Wörter vor und zeigt die jeweilige Quelle (OT = OpenThesaurus, WF = wordfreq).
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Filter nach Positionen (1–5), enthaltenen und ausgeschlossenen Buchstaben
|
- Filter nach Positionen (1–5), enthaltenen und ausgeschlossenen Buchstaben
|
||||||
- Deutsche Wortliste (nur 5 Buchstaben), aus OpenThesaurus und wordfreq gemerged
|
- Deutsche Wortliste (nur 5 Buchstaben), aus OpenThesaurus und wordfreq gemerged
|
||||||
- Quellen‑Badges je Treffer (OT/WF)
|
- Quellen‑Badges je Treffer (OT/WF)
|
||||||
@@ -11,6 +12,7 @@ Hilfs‑Web‑App für deutsche Wordle‑Rätsel. Nutzer geben bekannte Buchstab
|
|||||||
- Docker‑Image mit Gunicorn
|
- Docker‑Image mit Gunicorn
|
||||||
|
|
||||||
## Projektstruktur
|
## Projektstruktur
|
||||||
|
|
||||||
```
|
```
|
||||||
app.py # Flask‑App
|
app.py # Flask‑App
|
||||||
scripts/generate_wordlist.py # Generator für Wortliste + Quellen‑JSON
|
scripts/generate_wordlist.py # Generator für Wortliste + Quellen‑JSON
|
||||||
@@ -28,20 +30,26 @@ requirements.txt # Python‑Abhängigkeiten
|
|||||||
## Für Sysadmins (Betrieb)
|
## Für Sysadmins (Betrieb)
|
||||||
|
|
||||||
### Docker (empfohlen)
|
### Docker (empfohlen)
|
||||||
|
|
||||||
- Build:
|
- Build:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker build -t wordle-cheater .
|
docker build -t wordle-cheater .
|
||||||
```
|
```
|
||||||
|
|
||||||
- Run (Port 8000):
|
- Run (Port 8000):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run --rm -p 8000:8000 wordle-cheater
|
docker run --rm -p 8000:8000 wordle-cheater
|
||||||
```
|
```
|
||||||
|
|
||||||
- Health‑Check (lokal): `http://localhost:8000/`
|
- Health‑Check (lokal): `http://localhost:8000/`
|
||||||
|
|
||||||
Hinweise:
|
Hinweise:
|
||||||
- Das Image generiert die Wortliste beim Build. Wird `data/openthesaurus.txt` aktualisiert, Image neu bauen.
|
- Das Image generiert die Wortliste beim Build. Wird `data/openthesaurus.txt` aktualisiert, Image neu bauen.
|
||||||
- Gunicorn startet mit 3 Worker (`gthread`, 2 Threads). Passen Sie Worker/Threads an Ihre CPU an.
|
- Gunicorn startet mit 3 Worker (`gthread`, 2 Threads). Passen Sie Worker/Threads an Ihre CPU an.
|
||||||
- Hinter einem Reverse Proxy (z. B. Nginx) betreiben; Beispiel:
|
- Hinter einem Reverse Proxy (z. B. Nginx) betreiben; Beispiel:
|
||||||
|
|
||||||
```nginx
|
```nginx
|
||||||
location / {
|
location / {
|
||||||
proxy_pass http://127.0.0.1:8000;
|
proxy_pass http://127.0.0.1:8000;
|
||||||
@@ -55,6 +63,7 @@ location / {
|
|||||||
- Python 3.12 bereitstellen
|
- Python 3.12 bereitstellen
|
||||||
- Virtuelle Umgebung erstellen, Abhängigkeiten installieren (siehe Entwickler‑Setup)
|
- Virtuelle Umgebung erstellen, Abhängigkeiten installieren (siehe Entwickler‑Setup)
|
||||||
- Start per Gunicorn:
|
- Start per Gunicorn:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
gunicorn -w 3 -k gthread --threads 2 -b 0.0.0.0:8000 app:app
|
gunicorn -w 3 -k gthread --threads 2 -b 0.0.0.0:8000 app:app
|
||||||
```
|
```
|
||||||
@@ -64,16 +73,21 @@ gunicorn -w 3 -k gthread --threads 2 -b 0.0.0.0:8000 app:app
|
|||||||
## Für Entwickler (Setup & Workflow)
|
## Für Entwickler (Setup & Workflow)
|
||||||
|
|
||||||
### Voraussetzungen
|
### Voraussetzungen
|
||||||
|
|
||||||
- Python 3.12
|
- Python 3.12
|
||||||
- Windows/PowerShell oder Linux/macOS Terminal
|
- Windows/PowerShell oder Linux/macOS Terminal
|
||||||
|
|
||||||
### Lokale Installation
|
### Lokale Installation
|
||||||
|
|
||||||
Windows PowerShell (Projektwurzel, `.venv`):
|
Windows PowerShell (Projektwurzel, `.venv`):
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
python -m venv .venv
|
python -m venv .venv
|
||||||
.\.venv\Scripts\python.exe -m pip install -r requirements.txt --disable-pip-version-check
|
.\.venv\Scripts\python.exe -m pip install -r requirements.txt --disable-pip-version-check
|
||||||
```
|
```
|
||||||
|
|
||||||
Linux/macOS:
|
Linux/macOS:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python3 -m venv .venv
|
python3 -m venv .venv
|
||||||
source .venv/bin/activate
|
source .venv/bin/activate
|
||||||
@@ -81,47 +95,61 @@ pip install -r requirements.txt --disable-pip-version-check
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Wortliste generieren/aktualisieren
|
### Wortliste generieren/aktualisieren
|
||||||
|
|
||||||
- Quelle: `data/openthesaurus.txt` (optional; wenn fehlt, wird nur wordfreq genutzt)
|
- Quelle: `data/openthesaurus.txt` (optional; wenn fehlt, wird nur wordfreq genutzt)
|
||||||
- Generator erzeugt:
|
- Generator erzeugt:
|
||||||
- `data/words_de_5.txt`
|
- `data/words_de_5.txt`
|
||||||
- `data/words_de_5_sources.json`
|
- `data/words_de_5_sources.json`
|
||||||
|
|
||||||
Windows PowerShell:
|
Windows PowerShell:
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
.\.venv\Scripts\python.exe scripts\generate_wordlist.py
|
.\.venv\Scripts\python.exe scripts\generate_wordlist.py
|
||||||
```
|
```
|
||||||
|
|
||||||
Linux/macOS:
|
Linux/macOS:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python scripts/generate_wordlist.py
|
python scripts/generate_wordlist.py
|
||||||
```
|
```
|
||||||
|
|
||||||
### Entwicklung starten (Debug‑Server)
|
### Entwicklung starten (Debug‑Server)
|
||||||
|
|
||||||
Windows PowerShell:
|
Windows PowerShell:
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
.\.venv\Scripts\python.exe app.py
|
.\.venv\Scripts\python.exe app.py
|
||||||
```
|
```
|
||||||
|
|
||||||
Linux/macOS:
|
Linux/macOS:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python app.py
|
python app.py
|
||||||
```
|
```
|
||||||
|
|
||||||
- Browser: `http://127.0.0.1:5000`
|
- Browser: `http://127.0.0.1:5000`
|
||||||
|
|
||||||
### Docker während der Entwicklung
|
### Docker während der Entwicklung
|
||||||
|
|
||||||
- Neu bauen, wenn sich `data/openthesaurus.txt` oder der Code ändert:
|
- Neu bauen, wenn sich `data/openthesaurus.txt` oder der Code ändert:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker build -t wordle-cheater . && docker run --rm -p 8000:8000 wordle-cheater
|
docker build -t wordle-cheater . && docker run --rm -p 8000:8000 wordle-cheater
|
||||||
```
|
```
|
||||||
|
|
||||||
### Coding‑Hinweise
|
### Coding‑Hinweise
|
||||||
|
|
||||||
- Nur 5‑Buchstaben‑Wörter werden berücksichtigt (Regex inkl. ä/ö/ü/ß)
|
- Nur 5‑Buchstaben‑Wörter werden berücksichtigt (Regex inkl. ä/ö/ü/ß)
|
||||||
- UI ist serverseitig gerendert (Jinja2)
|
- UI ist serverseitig gerendert (Jinja2)
|
||||||
- Bei jeder Anfrage wird die aktuelle Wortliste geladen; nach Generierung ist kein Neustart nötig
|
- Bei jeder Anfrage wird die aktuelle Wortliste geladen; nach Generierung ist kein Neustart nötig
|
||||||
|
|
||||||
### Bekannte Einschränkungen
|
### Bekannte Einschränkungen
|
||||||
|
|
||||||
- Deutsche Morphologie (Pluralbildung etc.) wird nicht generiert, nur was in den Quellen vorhanden ist
|
- Deutsche Morphologie (Pluralbildung etc.) wird nicht generiert, nur was in den Quellen vorhanden ist
|
||||||
- Keine Benutzer‑Accounts, keine Persistenz über die Wortliste hinaus
|
- Keine Benutzer‑Accounts, keine Persistenz über die Wortliste hinaus
|
||||||
|
|
||||||
## Lizenz & Credits
|
## Lizenz & Credits
|
||||||
|
|
||||||
- OpenThesaurus Daten gemäß deren Lizenz (siehe Kopf von `data/openthesaurus.txt`)
|
- OpenThesaurus Daten gemäß deren Lizenz (siehe Kopf von `data/openthesaurus.txt`)
|
||||||
- wordfreq Python‑Paket gemäß dessen Lizenz
|
- wordfreq Python‑Paket gemäß dessen Lizenz
|
||||||
- Eigenes Projekt: (bitte ggf. Lizenz ergänzen)
|
- Eigenes Projekt: MIT
|
||||||
|
Reference in New Issue
Block a user