# Wordle‑Cheater (DE) 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 - Filter nach Positionen (1–5), enthaltenen und ausgeschlossenen Buchstaben - Enthaltene/Ausgeschlossene Buchstaben per Ein‑Zeichen‑Eingabe und „+“-Button hinzufügen - Ausgewählte Buchstaben werden als Badges angezeigt, Klick entfernt den Buchstaben wieder - Alphabetische Sortierung der ausgewählten Buchstaben (deutsche Locale) - Drag‑and‑Drop: Buchstaben aus „Enthalten“ direkt auf die Felder `pos1`–`pos5` ziehen - Deutsche Wortliste (nur 5 Buchstaben), aus OpenThesaurus und wordfreq gemerged - Quellen‑Badges je Treffer (OT/WF) - Zugängliche UI (A11y: Fieldset/Legend, ARIA‑Hinweise, Skip‑Link, semantische Liste) - SEO‑Metas (Description, Canonical, Open Graph, Twitter) - Docker‑Image mit Gunicorn ## Demo

Desktop-Screenshot Mobile-Screenshot

Wordle-Cheater live bei [https://wh.elpatron.me](https://wh.elpatron.me). ## Projektstruktur ```text wordle-helper/ ├── app.py # Flask‑App ├── scripts/ │ └── generate_wordlist.py # Generator für Wortliste + Quellen‑JSON ├── templates/ │ └── index.html # UI (Jinja2‑Template) ├── static/ │ └── favicon.svg # Favicon (SVG) ├── data/ │ ├── openthesaurus.txt # Quelle OpenThesaurus (Text) │ ├── words_de_5.txt # generierte Wortliste │ └── words_de_5_sources.json # Wort→Quellen (ot/wf) ├── Dockerfile # Produktionsimage (Gunicorn) ├── requirements.txt # Python‑Abhängigkeiten ``` ## Für Sysadmins (Betrieb) ### Environment-Variablen Für das Admin-Dashboard müssen folgende Variablen gesetzt werden: ```bash # Flask Secret Key (für Sessions) export FLASK_SECRET_KEY="your-super-secret-key-change-this-in-production" # Admin-Passwort für das Statistik-Dashboard export ADMIN_PASSWORD="your-secure-admin-password" ``` ### Docker (empfohlen) - Build: ```bash docker build -t wordle-cheater . ``` - Run (Port 8000): ```bash docker run --rm -p 8000:8000 wordle-cheater ``` - Health‑Check (lokal): `http://localhost:8000/` - Admin‑Dashboard: `http://localhost:8000/stats` (passwortgeschützt) Hinweise: - 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. - Hinter einem Reverse Proxy (z. B. Nginx) betreiben; Beispiel: ```nginx location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } ``` ### Ohne Docker (Service) - Python 3.12 bereitstellen - Virtuelle Umgebung erstellen, Abhängigkeiten installieren (siehe Entwickler‑Setup) - Start per Gunicorn: ```bash gunicorn -w 3 -k gthread --threads 2 -b 0.0.0.0:8000 app:app ``` --- ## Für Entwickler (Setup & Workflow) ### Voraussetzungen - Python 3.12 - Windows/PowerShell oder Linux/macOS Terminal ### Lokale Installation Windows PowerShell (Projektwurzel, `.venv`): ```powershell python -m venv .venv .\.venv\Scripts\python.exe -m pip install -r requirements.txt --disable-pip-version-check ``` Linux/macOS: ```bash python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt --disable-pip-version-check ``` ### Wortliste generieren/aktualisieren - Quelle: `data/openthesaurus.txt` (optional; wenn fehlt, wird nur wordfreq genutzt) - Generator erzeugt: - `data/words_de_5.txt` - `data/words_de_5_sources.json` Windows PowerShell: ```powershell .\.venv\Scripts\python.exe scripts\generate_wordlist.py ``` Linux/macOS: ```bash python scripts/generate_wordlist.py ``` ### Entwicklung starten (Debug‑Server) Windows PowerShell: ```powershell .\.venv\Scripts\python.exe app.py ``` Linux/macOS: ```bash python app.py ``` - Browser: `http://127.0.0.1:5000` ### Docker während der Entwicklung - Neu bauen, wenn sich `data/openthesaurus.txt` oder der Code ändert: ```bash docker build -t wordle-cheater . && docker run --rm -p 8000:8000 wordle-cheater ``` ### Coding‑Hinweise - Nur 5‑Buchstaben‑Wörter werden berücksichtigt (Regex inkl. ä/ö/ü/ß) - UI ist serverseitig gerendert (Jinja2) - Bei jeder Anfrage wird die aktuelle Wortliste geladen; nach Generierung ist kein Neustart nötig ### Bekannte Einschränkungen - Deutsche Morphologie (Pluralbildung etc.) wird nicht generiert, nur was in den Quellen vorhanden ist - Keine Benutzer‑Accounts, keine Persistenz über die Wortliste hinaus ## Lizenz & Credits - Projektlizenz: MIT (siehe `LICENSE`) - Datenquellen/Lizenzen: - OpenThesaurus Daten gemäß deren Lizenz (siehe Kopf von `data/openthesaurus.txt`) - wordfreq Python‑Paket gemäß dessen Lizenz