Files
filmdle/README.md
SimolZimol 526b0353e7 new file: .env.example
new file:   .gitignore
	new file:   Dockerfile
	new file:   README.md
	new file:   app.py
	new file:   app/__init__.py
	new file:   app/game.py
	new file:   app/models.py
	new file:   app/routes.py
	new file:   app/seed.py
	new file:   data/movies.json
	new file:   docker-compose.yml
	new file:   requirements.txt
	new file:   static/css/style.css
	new file:   static/js/game.js
	new file:   static/js/player.js
	new file:   templates/index.html
2026-08-07 20:48:08 +02:00

61 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.json` befüllt (idempotent).
Neue Filme einfach als Einträge in `data/movies.json` ergänzen (alle 9 Attribute
inkl. Plattformen, FSK, Studio, Budget, Universum) und Werte müssen aus den
festen Listen in `app/seed.py` stammen.
## 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)