SimolZimol 7c271d3946 modified: README.md
modified:   app/seed.py
	deleted:    data/movies.json
	new file:   data/movies/1922.json
	new file:   data/movies/1927.json
	new file:   data/movies/1933.json
	new file:   data/movies/1939.json
	new file:   data/movies/1941.json
	new file:   data/movies/1942.json
	new file:   data/movies/1949.json
	new file:   data/movies/1950.json
	new file:   data/movies/1952.json
	new file:   data/movies/1954.json
	new file:   data/movies/1956.json
	new file:   data/movies/1957.json
	new file:   data/movies/1958.json
	new file:   data/movies/1959.json
	new file:   data/movies/1960.json
	new file:   data/movies/1961.json
	new file:   data/movies/1962.json
	new file:   data/movies/1964.json
	new file:   data/movies/1965.json
	new file:   data/movies/1967.json
	new file:   data/movies/1968.json
	new file:   data/movies/1969.json
	new file:   data/movies/1971.json
	new file:   data/movies/1972.json
	new file:   data/movies/1973.json
	new file:   data/movies/1974.json
	new file:   data/movies/1975.json
	new file:   data/movies/1976.json
	new file:   data/movies/1977.json
	new file:   data/movies/1978.json
	new file:   data/movies/1979.json
	new file:   data/movies/1980.json
	new file:   data/movies/1981.json
	new file:   data/movies/1982.json
	new file:   data/movies/1983.json
	new file:   data/movies/1984.json
	new file:   data/movies/1985.json
	new file:   data/movies/1986.json
	new file:   data/movies/1987.json
	new file:   data/movies/1988.json
	new file:   data/movies/1989.json
	new file:   data/movies/1990.json
	new file:   data/movies/1991.json
	new file:   data/movies/1992.json
	new file:   data/movies/1993.json
	new file:   data/movies/1994.json
	new file:   data/movies/1995.json
	new file:   data/movies/1996.json
	new file:   data/movies/1997.json
	new file:   data/movies/1998.json
	new file:   data/movies/1999.json
	new file:   data/movies/2000.json
	new file:   data/movies/2001.json
	new file:   data/movies/2002.json
	new file:   data/movies/2003.json
	new file:   data/movies/2004.json
	new file:   data/movies/2005.json
	new file:   data/movies/2006.json
	new file:   data/movies/2007.json
	new file:   data/movies/2008.json
	new file:   data/movies/2009.json
	new file:   data/movies/2010.json
	new file:   data/movies/2011.json
	new file:   data/movies/2012.json
	new file:   data/movies/2013.json
	new file:   data/movies/2014.json
	new file:   data/movies/2015.json
	new file:   data/movies/2016.json
	new file:   data/movies/2017.json
	new file:   data/movies/2018.json
	new file:   data/movies/2019.json
	new file:   data/movies/2020.json
	new file:   data/movies/2021.json
	new file:   data/movies/2022.json
	new file:   data/movies/2023.json
	new file:   data/movies/2024.json
2026-08-07 22:53:38 +02:00
2026-08-07 22:53:38 +02:00
2026-08-07 22:53:38 +02:00
2026-08-07 22:46:59 +02:00
2026-08-07 20:48:08 +02:00
2026-08-07 20:48:08 +02:00
2026-08-07 20:48:08 +02:00
2026-08-07 20:48:08 +02:00
2026-08-07 20:48:08 +02:00
2026-08-07 21:07:22 +02:00
2026-08-07 22:53:38 +02:00
2026-08-07 20:48:08 +02:00
2026-08-07 21:04:02 +02:00

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

  1. Repo in Coolify einbinden.
  2. Build-Pack: Dockerfile verwenden.
  3. Eine PostgreSQL-Ressource anlegen und folgende Umgebungsvariablen setzen:
    • DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_DATABASE
    • SECRET_KEY (langer Zufallswert)
    • MAX_ATTEMPTS (optional, Standard 10)
    • DAILY_RESET_UTC (optional, Standard 9 = 09:00 UTC)
Description
No description provided
Readme 204 KiB
Languages
Python 43.9%
JavaScript 30.3%
CSS 18.4%
HTML 5.2%
Dockerfile 2.2%