Skip to main content
MusicVoting
  1. Technical Docs/

Frontend

·237 words·2 mins·
Developer
Table of Contents

Das Frontend ist eine Angular-App unter musicvoting/frontend/. Es bedient drei Rollen: Gast, Host und Monitor/TV (Startpage mit Spotify Web Playback SDK).

Routen
#

Definiert in src/app/app.routes.ts. 🔒 = durch hostGuard geschützt.

PfadKomponenteZweck
`` (Home)HomeStartseite
codeCodeInput5-stelligen PIN eingeben
join/:pinCodeInputBeitritt per QR-Link (/join/<pin>)
votingVotingCompGast: Voting-Ansicht (Queue)
guestGuestGast: Suchen & Hinzufügen
host-optionsHostOptionsHost-Menü
create-partyCreatePartyParty erstellen (Provider wählen)
startpage 🔒StartpageMonitor/TV-Player (Web Playback SDK)
dashboard 🔒HostDashboardHost-Steuerung
voting-host 🔒VotingHostHost: Queue-Ansicht
search-host 🔒SearchHostHost: Suche
**→ ``Fallback auf Home

Services & Querschnitt
#

  • services/party.service.ts – zentraler Zugriff auf die Backend-API (Party, Queue, Voting, Suche, Playback) und die SSE-Verbindung.
  • host-auth.interceptor.ts – hängt Authorization: Bearer <hostPin> an, wenn ein Host-PIN im localStorage liegt (siehe Authentifizierung).
  • host.guard.ts – schützt die Host-Routen; ohne Host-PIN Redirect auf /.

Rollen-Verhalten
#

  • Gast: landet nach dem Beitreten auf voting; untere Tab-Leiste wechselt zwischen „Voten“ (voting) und „Hinzufügen“ (guest).
  • Host: erstellt die Party, steuert Wiedergabe und Queue über dashboard; Fortschrittsbalken aus progress-SSE-Events.
  • Monitor/TV (startpage): lädt das Web Playback SDK, registriert das Spotify-Gerät, sendet das Fortschritts-Relay und reagiert auf track-changed/party-ended.

SSE im Frontend
#

Clients abonnieren GET /api/spotify/events?source=web&partyId={id} und laden bei queue-updated / vote-updated / track-changed neu bzw. navigieren bei party-ended zurück. Details: Realtime / SSE.

Lokal starten
#

Siehe

How To Run
·643 words·4 mins
Developer
– kurz: cd musicvoting/frontend && npm install && npm start.