# Hördle Eine Web-App inspiriert von Heardle, bei der Nutzer täglich einen Song anhand kurzer Audio-Schnipsel erraten müssen. ## Features - **Tägliches Rätsel:** Jeden Tag ein neuer Song für alle Nutzer. - **Inkrementelle Hinweise:** Startet mit 2 Sekunden, dann 4s, 7s, 11s, 16s, bis 30s. - **Admin Dashboard:** - Upload von MP3-Dateien. - Automatische Extraktion von ID3-Tags (Titel, Interpret). - Bearbeitung von Metadaten. - Sortierbare Song-Bibliothek. - **Teilen-Funktion:** Ergebnisse können als Emoji-Grid geteilt werden. - **Persistenz:** Spielstatus wird lokal im Browser gespeichert. ## Tech Stack - **Framework:** Next.js 14 (App Router) - **Styling:** Vanilla CSS - **Datenbank:** SQLite (via Prisma ORM) - **Deployment:** Docker & Docker Compose ## Lokale Entwicklung 1. Abhängigkeiten installieren: ```bash npm install ``` 2. Datenbank initialisieren: ```bash npx prisma generate npx prisma db push ``` 3. Entwicklungsserver starten: ```bash npm run dev ``` Die App läuft unter `http://localhost:3000`. ## Deployment mit Docker Das Projekt ist für den Betrieb mit Docker optimiert. 1. **Vorbereitung:** Kopiere die Beispiel-Konfiguration: ```bash cp docker-compose.example.yml docker-compose.yml ``` Passe ggf. das `ADMIN_PASSWORD` in der `docker-compose.yml` an. 2. **Starten:** ```bash docker compose up --build -d ``` Die App ist unter `http://localhost:3010` erreichbar (Port in `docker-compose.yml` konfiguriert). 3. **Daten-Persistenz:** - Die SQLite-Datenbank wird im Ordner `./data` gespeichert. - Hochgeladene Songs liegen in `./public/uploads`. - Beide Ordner werden als Docker Volumes eingebunden, sodass Daten auch bei Container-Neustarts erhalten bleiben. 4. **Admin-Zugang:** - URL: `/admin` - Standard-Passwort: `admin123` (Bitte in `docker-compose.yml` ändern!) ## Lizenz MIT