How brunovieira003/groov-web works
Groov Web is a Svelte music-library and playback client for groov-api. Users browse and search songs, artists, albums, and playlists; select music for playback; and manage library tasks through settings. Route server loaders/actions fetch catalog data and submit mutations to the API, while the client exposes playback, lyrics, queue, and task-feedback features. The sampled server routes establish several API connections; playback wiring and most component-to-store relationships were not sampled, so those uncertain links are omitted. README-planned features are not represented as implemented components.
Main entry points: library/+page.server.ts Library Settings · playlists/+page.server.ts Playlist Catalog · [playlistId]/+page.server.ts Playlist Detail · routes/+page.server.ts Song Browse
Components 23
Music Catalog
- Song Browse
src/routes/+page.server.ts - Search
src/routes/search/+page.server.ts - Artist Catalog
src/routes/artists/+page.server.ts - Artist Detail
src/routes/artists/[artistId]/+page.server.ts - Album Catalog
src/routes/albums/+page.server.ts - Album Detail
src/routes/albums/[albumId]/+page.server.ts - Playlist Catalog
src/routes/playlists/+page.server.ts - Playlist Detail
src/routes/playlists/[playlistId]/+page.server.ts
Playback Experience
- Player Controls
src/lib/components/player/default-player.svelte - Full Player
src/lib/components/player/full-player.svelte - Playing View
src/routes/playing/+page.svelte - Lyrics View
src/routes/lyrics/+page.svelte - Cassette View
src/routes/cassete/+page.svelte
Library Management
- Library Settings
src/routes/settings/library/+page.server.ts - Upload Controls
src/lib/components/forms/upload-button.svelte - Task Feedback
src/lib/components/task-list.svelte
Client State
- Player State
src/lib/stores/player.ts - Playback Queue
src/lib/stores/queue.ts - Task Tracking
src/lib/stores/runningTasks.ts - API Proxy
src/routes/api/[...path]/+server.ts
Other components
- Listener
- groov-api
- Task Event API
Connections 25
- Listener → Song Browse: browses
- Listener → Search: searches
- Listener → Artist Catalog: browses
- Listener → Album Catalog: browses
- Listener → Playlist Catalog: browses
- Listener → Playing View: opens
- Listener → Lyrics View: opens
- Listener → Cassette View: opens
- Listener → Library Settings: manages library
- Song Browse → groov-api: fetches songs
- Search → groov-api: queries
- Artist Catalog → groov-api: fetches artists
- Artist Detail → groov-api: fetches artist
- Album Catalog → groov-api: fetches albums
- Album Detail → groov-api: fetches album
- Playlist Catalog → groov-api: fetches playlists
- Playlist Catalog → groov-api: creates playlist
- Playlist Detail → groov-api: fetches playlist
- Playlist Detail → groov-api: updates cover
- Library Settings → groov-api: uploads and scans
- Library Settings → groov-api: prunes library
- Upload Controls → Library Settings: submits upload
- Task Tracking → Task Event API: subscribes events
- Listener → API Proxy: sends API request
- API Proxy → groov-api: forwards request