modified: data/movies/1993.json modified: data/movies/1994.json modified: data/movies/1996.json modified: data/movies/1997.json
Filmdle – Film-Quiz
Ein "Rate den Film anhand seiner Eigenschaften"-Quiz, inspiriert von Gamedle's Guess. Du bekommst einen geheimen Zielfilm und tippst ueber eine Suchleiste (mit Autocomplete). Jeder Tipp zeigt eine Zeile mit 9 Spalten, die farblich zeigen, wie nah du dran bist (grün = passt, gelb = teilweise, rot = passt nicht). Bei Jahr und Budget zeigen die Pfeile ▲/▼ an, ob dein Tipp zu früh oder zu spät liegt.
Modi
- Täglich: Derselbe Film für alle pro Tag (wird um 09:00 UTC gewechselt).
- Unbegrenzt: Zufälliger Film pro Runde, so oft du willst.
Für beide Modi werden getrennte Sieg- und Niederlagen-Str eaks gespeichert (pro Spielername, in PostgreSQL).
Technologie
- Flask + SQLAlchemy (PostgreSQL)
- Gunicorn im Docker-Container, lauffähig auf Coolify
Lokale Entwicklung
Voraussetzung: Python 3.11+, Docker (für Postgres).
# 1. Postgres starten
docker compose up -d db
# 2. Python venv + Abhängigkeiten
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements.txt
# 3. Umgebungsvariablen (lokal)
copy .env.example .env # Werte anpassen (DB_USER/DB_PASSWORD/DB_DATABASE = filmdle)
# 4. App starten (laden der .env wird automatisch via python-dotenv)
python app.py
Die App läuft dann auf http://localhost:8000
Datenbank-Schema
Die Tabellen werden beim ersten Start automatisch angelegt und mit den festen
Referenzlisten (Plattformen, Genres, Studios, Universen) sowie den Filmen aus
data/movies/ befüllt (idempotent).
Die Filme sind pro Jahr in je einer Datei gespeichert, z.B. data/movies/1997.json
oder data/movies/2024.json. Jede Datei enthält ein Array mit allen Filmen dieses
Jahres.
Neue Filme einfach in die passende Jahres-Datei ergänzen (alle 9 Attribute
inkl. Plattformen, FSK, Studio, Budget, Universum) und Werte müssen aus den
festen Listen in app/seed.py stammen. Existiert für das Jahr noch keine Datei,
einfach eine neue Datei data/movies/<JAHR>.json anlegen.
Deployment auf Coolify
- Repo in Coolify einbinden.
- Build-Pack:
Dockerfileverwenden. - Eine PostgreSQL-Ressource anlegen und folgende Umgebungsvariablen setzen:
DB_HOST,DB_PORT,DB_USER,DB_PASSWORD,DB_DATABASESECRET_KEY(langer Zufallswert)MAX_ATTEMPTS(optional, Standard 10)DAILY_RESET_UTC(optional, Standard 9 = 09:00 UTC)