Major changes:
- Full UI redesign with Vuetify 3 (dark theme, modern components)
- Sidebar navigation with gradient logo
- Redesigned player controls with Material Design icons
- New room cards, track lists, and filter UI with chips
- Modern auth pages with centered cards
Configuration improvements:
- Centralized all settings in root .env file
- Removed redundant backend/.env and frontend/.env files
- Increased file upload limit to 100MB (nginx + backend)
- Added build args for Vite environment variables
- Frontend now uses relative paths (better for domain deployment)
UI Components updated:
- App.vue: v-navigation-drawer with sidebar
- MiniPlayer: v-footer with modern controls
- Queue: v-list with styled items
- RoomView: improved filters with clickable chips
- All views: Vuetify cards, buttons, text fields
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace email with username for authentication
- Update User model, schemas, and auth endpoints
- Update frontend login and register views
- Add migration to remove email column
- Add multiple track upload support
- New backend endpoint for bulk upload
- Frontend multi-file selection with progress
- Auto-extract metadata from ID3 tags
- Visual upload progress for each file
- Prevent duplicate tracks in room queue
- Backend validation for duplicates
- Visual indication of tracks already in queue
- Error handling with user feedback
- Add bulk track selection for rooms
- Multi-select mode with checkboxes
- Bulk add endpoint with duplicate filtering
- Selection counter and controls
- Add track filters in room modal
- Search by title and artist
- Filter by "My tracks"
- Filter by "Not in queue"
- Live filtering with result counter
- Improve Makefile
- Add build-backend and build-frontend commands
- Add rebuild-backend and rebuild-frontend commands
- Add rebuild-clean variants
- Update migrations to run in Docker
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add global activeRoom store for persistent WebSocket connection
- Add MiniPlayer component for playback controls across pages
- Add chunked S3 streaming with 64KB chunks and Range support
- Add queue item removal button
- Move DB credentials to environment variables
- Update .env.example with DB configuration
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>