elpatron d730e6b266 Admin: Passwortgeschütztes Statistik-Dashboard implementiert
- Neue Routen: /login, /stats, /logout
- Session-basierte Authentifizierung
- Umfassende Statistiken: Seitenaufrufe, Suchvorgänge, Quellen
- Environment-Variablen: ADMIN_PASSWORD, FLASK_SECRET_KEY
- Docker-Integration mit docker-compose.yml
- Responsive UI mit Charts und Aktivitätsprotokoll
2025-08-20 09:11:53 +02:00
2025-08-19 11:10:05 +02:00
2025-08-19 11:10:05 +02:00
2025-08-19 11:10:05 +02:00
2025-08-19 11:10:05 +02:00
2025-08-20 08:20:11 +02:00
2025-08-19 13:11:22 +02:00
2025-08-20 08:20:11 +02:00

WordleCheater (DE)

HilfsWebApp für deutsche WordleRätsel. Nutzer geben bekannte Buchstaben/Positionen an, zusätzlich enthaltene und ausgeschlossene Buchstaben. Die App schlägt passende 5BuchstabenWörter vor und zeigt die jeweilige Quelle (OT = OpenThesaurus, WF = wordfreq).

Features

  • Filter nach Positionen (15), enthaltenen und ausgeschlossenen Buchstaben
  • Deutsche Wortliste (nur 5 Buchstaben), aus OpenThesaurus und wordfreq gemerged
  • QuellenBadges je Treffer (OT/WF)
  • Zugängliche UI (A11y: Fieldset/Legend, ARIAHinweise, SkipLink, semantische Liste)
  • SEOMetas (Description, Canonical, Open Graph, Twitter)
  • DockerImage mit Gunicorn

Demo

Screenshot

Wordle-Cheater live bei https://wh.elpatron.me.

Projektstruktur

wordle-helper/
├── app.py                        # FlaskApp
├── scripts/
│   └── generate_wordlist.py      # Generator für Wortliste + QuellenJSON
├── templates/
│   └── index.html                # UI (Jinja2Template)
├── 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              # PythonAbhängigkeiten

Für Sysadmins (Betrieb)

Environment-Variablen

Für das Admin-Dashboard müssen folgende Variablen gesetzt werden:

# 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:
docker build -t wordle-cheater .
  • Run (Port 8000):
docker run --rm -p 8000:8000 wordle-cheater
  • HealthCheck (lokal): http://localhost:8000/
  • AdminDashboard: 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:
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 EntwicklerSetup)
  • Start per Gunicorn:
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):

python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt --disable-pip-version-check

Linux/macOS:

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:

.\.venv\Scripts\python.exe scripts\generate_wordlist.py

Linux/macOS:

python scripts/generate_wordlist.py

Entwicklung starten (DebugServer)

Windows PowerShell:

.\.venv\Scripts\python.exe app.py

Linux/macOS:

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:
docker build -t wordle-cheater . && docker run --rm -p 8000:8000 wordle-cheater

CodingHinweise

  • Nur 5BuchstabenWö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 BenutzerAccounts, 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 PythonPaket gemäß dessen Lizenz
Description
Hilft bei der Lösung deutschsprachiger Wordle Rätsel
https://wh.elpatron.me
Readme MIT 2.1 MiB
Languages
HTML 64.7%
Python 32.2%
JavaScript 2%
Dockerfile 1.1%