Refactor code structure for improved readability and maintainability
All checks were successful
Build and Push Docker Image / docker (push) Successful in 21s

This commit is contained in:
2025-09-04 21:53:54 +02:00
parent 80f8c4ca90
commit 8c5ca0044f
27 changed files with 3398 additions and 326 deletions

View File

@@ -4,27 +4,29 @@
Run the app in a container while using your local `data/` music folder:
1) Build the image
1. Build the image
```powershell
docker compose build
```
2) Start the service
2. Start the service
```powershell
docker compose up -d
```
3) Open http://localhost:5173
3. Open http://localhost:5173
Notes:
- Your local `data/` is mounted read/write at `/app/data` inside the container, so you can manage tracks on the host.
- To rebuild after changes: `docker compose build --no-cache && docker compose up -d`.
Lokales Multiplayer-Webspiel inspiriert von HITSTER. Nutzt eure MP3-Dateien im Ordner `data/`, eine Lobby mit Raum-Code sowie WebSockets für den Mehrspieler-Modus.
## Features
- Lobby mit Raum-Erstellung und -Beitritt (Code)
- Mehrere Spieler pro Raum, Host startet das Spiel
- Lokale MP3-Wiedergabe via Browser-Audio (`/audio/<dateiname>`) keine externen Dienste
@@ -34,10 +36,12 @@ Lokales Multiplayer-Webspiel inspiriert von HITSTER. Nutzt eure MP3-Dateien im O
Hinweis: Regeln sind vereinfacht; „HITSTER!“-Challenges und exakter Zwischenplatzierungsmodus sind als Ausbaustufe geplant.
## Setup
1. MP3-Dateien in `data/` legen (Dateiname wird als Fallback-Titel genutzt; falls Tags vorhanden, werden Titel/Künstler/Jahr ausgelesen).
2. Abhängigkeiten installieren und Server starten.
### PowerShell-Befehle
```powershell
# In den Projektordner wechseln
Set-Location e:\git\hitstar
@@ -52,25 +56,30 @@ npm start
Dann im Browser öffnen: http://localhost:5173
## Nutzung
- Namen setzen, Raum erstellen oder mit Code beitreten (Code wird angezeigt).
- Host klickt „Spiel starten“.
- DJ klickt „Lied scannen“; der Track spielt bei allen.
- Aktiver Spieler wählt „Vor“ oder „Nach“. Bei Erfolg wandert das Lied in seine Zeitleiste.
## Ordnerstruktur
- `public/` Client (HTML/CSS/JS)
- `server.js` Express + WebSocket Server, Game-State
- `data/` eure MP3-Dateien
## Git & Audio-Dateien
- In `.gitignore` sind alle gängigen Audio-Dateitypen ausgeschlossen (z. B. .mp3, .wav, .flac, .m4a, .ogg, …).
- Legt eure Musik lokal in `data/`. Diese Dateien werden nicht ins Git-Repo eingecheckt und bleiben nur auf eurem Rechner.
## Nächste Schritte (optional)
- „HITSTER!“-Challenges per Token mit Positionsauswahl (zwischen zwei Karten)
- Team-Modus, Pro-/Expert-Regeln, exaktes Jahr
- Persistenz (Räume/Spielstände), Reconnect
- Drag & Drop-Zeitleiste, visuelle Platzierung
## Hinweis
Nur für privaten Gebrauch. Musikdateien bleiben lokal bei euch.