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
66 lines
2.3 KiB
Markdown
66 lines
2.3 KiB
Markdown
# 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).
|
||
|
||
```bash
|
||
# 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)
|