Commit Graph

11 Commits

Author SHA1 Message Date
Brian Fertig 13a2ad52e5 feat: add album cover generation via ComfyUI
- Add database migrations for image workflow settings and generated covers tracking
- Implement ComfyUI image generation workflow with separate JSON upload in admin panel
- Add cover generation routes with polling, preview, and apply/skip functionality
- Integrate cover generation into song publish flow (auto-redirect if no cover uploaded)
- Add sharp dependency for image processing and media serving for generated files
- Update admin UI with image workflow upload and configuration options
2026-04-16 23:38:46 -06:00
Brian Fertig 428cfb1008 feat: add PWA support and refine creativity parameter handling
- Register service worker (`sw.js`) with cache-first static assets and network-first HTML pages
- Update `site.webmanifest` with app name, colors, icons at `/static/`, and standalone display mode
- Add `<meta name="theme-color">` in layout for browser UI theming
- Simplify creativity slider: change range from 0–10 to 3.0–7.0 (step 0.5), aligning frontend and backend logic
- Adjust `generate.js` route and `generation.js` service to accept direct temperature values (3.0–7.0) instead of scaled inputs
2026-04-13 19:42:30 -06:00
Brian Fertig 8b4a28e062 feat: add AI song generation via ComfyUI with rate limiting and admin configuration
- Add database schema for site_settings and generated_songs tables with migration 011_generation.sql
- Implement backend services for settings management and generation workflow (submit/poll ComfyUI)
- Create routes for admin panel (/admin) to configure generation parameters, upload workflow JSON, manage users
- Create generate routes (/generate) with rate limiting (3min cooldown, 10/hour limit), form submission, polling, streaming
- Add frontend UI: generate page with form and rate-limit panel, publish flow for completed generations
- Integrate generation link into header navigation for verified users when enabled
2026-04-12 17:45:12 -06:00
Brian Fertig 021d0694df feat: implement user notifications system
- Add UI components for notification navigation (btn + badge) and notification list with unread indicators
- Introduce notifications service with CRUD methods for managing user notifications
- Trigger notifications when users like/favorite songs or playlists via social actions
- Add /account/notifications route to view and mark all notifications as read
- Display unread count in header and account page navigation
2026-04-12 11:43:24 -06:00
Brian Fertig 347cf97da7 feat: add Open Graph and Twitter Card meta tags for public pages
- Introduce appBaseUrl config option for absolute URLs in social cards
- Generate og metadata for song and playlist pages with title, description, image, and URL
- Include partial layout support for rendering OG/Twitter meta tags conditionally
2026-04-12 10:43:19 -06:00
Brian Fertig 20bd6422a6 refactor: rename admin routes and views to mymusic namespace
- Move /admin/* routes to /mymusic/* for clearer user-focused section naming
- Rename admin/ view templates to mymusic/ with updated paths and URLs
- Add cover art preview in song edit form with current cover thumbnail styling
- Update navigation active states to use new /mymusic* paths
- Change now-playing creator link from window.open() to direct navigation
2026-04-12 10:29:00 -06:00
Brian Fertig be5857fe3b feat: add user avatars with cropping and image lightbox
- Add `avatar_path` column to users table via migration 008
- Integrate `cropperjs` and `sharp` for avatar upload, cropping (600×600), and PNG conversion
- Serve avatars at `/media/avatars` with static caching; expose `/static/vendor/cropperjs`
- Add avatar management UI in account settings with modal cropping workflow
- Display creator avatars on song/playlist detail pages (fallback to initial)
- Implement generic image lightbox (`lightbox.js`) for cover art with zoom animations and keyboard support
- Refactor song/playlist detail views to use responsive layout and lightbox-enabled covers
2026-04-11 10:08:05 -06:00
Brian Fertig f044d98afc feat: implement social actions (like/favorite) for songs and playlists
- Add database tables for song/playlist likes and favorites
- Create `social` service with toggle functions and enrichment helpers
- Implement `/api/:type/:id/(like|favorite)` routes with CSRF protection
- Add like/favorite buttons to player, song lists, playlists, and cards
- Support guest → login redirect via `data-require-login`
- Inject CSRF token into layout for JS API requests
2026-04-11 09:12:21 -06:00
Brian Fertig a24f2fe75d feat: add configurable site name via SITE_NAME env var
- Introduce `SITE_NAME` environment variable with fallback to 'Bri-Tunes'
- Propagate `siteName` to templates via `res.locals`
- Replace hardcoded 'Bri-Tunes' references in layout, header, home title, and boot sequence
- Update `.env.example` with new variable
2026-04-11 08:34:11 -06:00
Brian Fertig 041f0f2ea1 ```
feat(users): implement user disabling functionality with admin controls

- Add `disabled` column to users table via migration
- Update login flow to reject disabled accounts with 403 error
- Introduce new `/admin/users` route for admin-only user management (disable/enable, verify email, delete with content)
- Extend users service to support listing all users, toggling disabled status, admin verification, and cascading deletion of user's songs/playlists
- Add admin UI for managing users with visual indication of disabled accounts (opacity reduction)
- Update navigation to include "Users" link for admins
```
2026-04-10 20:32:57 -06:00
Brian Fertig a515df90de first commit 2026-04-09 18:41:01 -06:00