Commit graph

55 commits

Author SHA1 Message Date
fullsizemalt
ce7bb81e64 Fix rating creation: inject user_id in model_dump 2025-12-26 01:00:32 -08:00
fullsizemalt
45608bfdfb Fix Unknown Song in search: properly serialize nested relationships 2025-12-25 21:52:41 -08:00
fullsizemalt
ddcc49d41e Fix 500 error on review creation 2025-12-25 10:58:32 -08:00
fullsizemalt
3de9a7cb3f refactor: remove user search from global search - irrelevant for music archive 2025-12-24 21:57:11 -08:00
fullsizemalt
8990063837 fix: search endpoint crashing on User.username reference
User.username doesn't exist - usernames are in Profile model.
Now properly searches Profile.username and joins results.
2025-12-24 21:49:10 -08:00
fullsizemalt
6dd88d4e2d fix: improve session persistence and review saving
- Increase token expiry from 30 minutes to 7 days
- Remove internal session.commit() calls from gamification services
- Add try/except around gamification logic in review creation
- Add elmeg.runfoo.run hostname support in frontend api-config
2025-12-24 21:44:26 -08:00
fullsizemalt
8cd578b863 fix(backend): Add missing slug fields to PerformanceDetailRead schema
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-24 17:55:12 -08:00
fullsizemalt
0f41349817 feat: Filter future shows from main list
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-24 17:50:08 -08:00
fullsizemalt
a5b2ded18f fix(backend): Increase songs limit to 1000
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-24 17:35:24 -08:00
fullsizemalt
c9a22de2a9 feat: Add Upcoming Shows feature (backend+frontend) and Special Features section
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-24 17:08:36 -08:00
fullsizemalt
be57110de8 feat: Tour pages - add show counts, year grouping, stats card 2025-12-24 16:18:45 -08:00
fullsizemalt
2df93a75e4 feat: add Sequences feature for song groupings
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-24 13:37:27 -08:00
fullsizemalt
ff56e4f140 feat: add Band Members (Musicians) feature - Sprint 4
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-24 13:07:48 -08:00
fullsizemalt
037d2aa463 feat: enhance Nickname Queue with status filtering
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-24 13:04:35 -08:00
fullsizemalt
d276cdbd76 feat: add Admin Interface for Artists management
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-24 12:34:43 -08:00
fullsizemalt
61715a119c feat: implement Artist model usage, router, and migration script
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-24 12:19:28 -08:00
fullsizemalt
49e025d3bf fix: commit all pending changes (home, leaderboard, slug cleanup)
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-24 12:06:35 -08:00
fullsizemalt
7a549e15ac fix(leaderboard): filter out 0xp users
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-24 11:50:17 -08:00
fullsizemalt
4aefad1eff feat(videos): add search, video toggle, and fix links
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-24 10:20:39 -08:00
fullsizemalt
1f29cdf290 feat: Bandcamp/Nugs links for shows and performances
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
- Add bandcamp_link, nugs_link to Performance model
- Admin endpoints: PATCH /admin/performances/{id}
- Bulk import: POST /admin/import/external-links
- Spec doc: docs/BANDCAMP_NUGS_SPEC.md
2025-12-23 15:56:21 -08:00
fullsizemalt
14a509ddb5 feat: Add bug tracker MVP (decoupled, feature-flagged)
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
- Backend: Ticket and TicketComment models (no FK to User)
- API: /tickets/* endpoints for submit, view, comment, upvote
- Admin: /tickets/admin/* for triage queue
- Frontend: /bugs pages (submit, my-tickets, known-issues, detail)
- Feature flag: ENABLE_BUG_TRACKER env var (default: true)

To disable: Set ENABLE_BUG_TRACKER=false
To remove: Delete models_tickets.py, routers/tickets.py, frontend/app/bugs/
2025-12-23 13:18:00 -08:00
fullsizemalt
2da46eaa16 feat: Privacy settings with functional toggles, sticky sidebar, roadmap doc
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-23 13:08:48 -08:00
fullsizemalt
9e48dd78ff style: Update avatar colors to jewel tones (Sapphire, Ruby, Emerald, etc.)
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-23 11:56:23 -08:00
fullsizemalt
f989414323 feat: Redesign settings page with comprehensive sections, sidebar nav, and distinct avatar colors
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-23 11:38:18 -08:00
fullsizemalt
a4d63a9e2c feat: Add custom avatar system with color picker and text overlay
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-23 11:12:31 -08:00
fullsizemalt
171b8a38ca feat: Add /videos page listing all YouTube videos without thumbnails 2025-12-22 23:16:04 -08:00
fullsizemalt
16bacc29df feat: Enhance Performance Page with Top Rated Versions list 2025-12-21 21:52:23 -08:00
fullsizemalt
e3e074248e feat: complete slug integration, fix set names logic, add missing ui components 2025-12-21 20:29:36 -08:00
fullsizemalt
b73f993475 feat: Email Service Integration with AWS SES
- Implemented backend/services/email_service.py with boto3 SES client
- Added EmailService class with verification and password reset methods
- Updated auth router to use the new email service
- Configured docker-compose.yml to pass AWS SES environment variables
2025-12-21 19:28:29 -08:00
fullsizemalt
bc804a666b feat: Gamification sprint complete
XP System:
- XP now awarded for attendance (+25), ratings (+10), reviews (+50)
- First-time bonuses for first rating (+25) and first review (+50)
- Streak bonuses (+10 per day, capped at 7x)
- Badge awards automatically grant XP

User Titles & Flair System (Tracker-style):
- Level-based free titles: Rookie → Immortal
- Purchasable titles with XP: Jam Connoisseur, Setlist Savant, etc.
- Username colors purchasable with XP (6 colors + Rainbow)
- Emoji flairs purchasable with XP
- Early adopter perks: exclusive titles, colors, 10% XP bonus

New Fields on User:
- custom_title, title_color, flair
- is_early_adopter, is_supporter
- joined_at

Shop API Endpoints:
- GET /gamification/shop/titles
- POST /gamification/shop/titles/purchase
- GET/POST for colors and flairs
- GET /gamification/user/{id}/display
- GET /gamification/early-adopter-perks

Frontend:
- XP Leaderboard added to home page
- LevelProgressCard shows on profile
2025-12-21 19:21:20 -08:00
fullsizemalt
5ffb428bb8 feat: Add gamification system
Backend:
- Add XP, level, streak fields to User model
- Add tier, category, xp_reward fields to Badge model
- Create gamification service with XP, levels, streaks, badge checking
- Add gamification router with level progress, leaderboard endpoints
- Define 16 badge types across attendance, ratings, social, milestones

Frontend:
- LevelProgressCard component with XP bar and streak display
- XPLeaderboard component showing top users
- Integrate level progress into profile page

Slug System:
- All entities now support slug-based URLs
- Performances use songslug-YYYY-MM-DD format
2025-12-21 18:58:42 -08:00
fullsizemalt
66b5039337 fix: Fix import shadowing in routers 2025-12-21 18:51:23 -08:00
fullsizemalt
3edbcdeb64 feat: Add slug support for all entities
- Add slug fields to Song, Venue, Show, Tour, Performance models
- Update routers to support lookup by slug or ID
- Create slugify.py utility for generating URL-safe slugs
- Add migration script to generate slugs for existing data
- Performance slugs use songslug-YYYY-MM-DD format
2025-12-21 18:46:40 -08:00
fullsizemalt
2e4e0b811d feat: User profile enhancements - chase songs and attendance stats
Backend:
- Add ChaseSong model for tracking songs users want to see
- New /chase router with CRUD for chase songs
- Profile stats endpoint with heady versions, debuts, etc.

Frontend:
- ChaseSongsList component with search, add, remove
- AttendanceSummary with auto-generated stats
- Updated profile page with new Overview tab content
2025-12-21 18:39:39 -08:00
fullsizemalt
ee311c0bc4 feat: Complete venues overhaul
- Fix ratings API to support venue_id and tour_id
- Add migration for new rating columns
- Venues list: search, state filter, sort by name/shows
- Venues detail: show list with dates, venue stats, error handling
- Remove broken EntityRating/SocialWrapper from venue pages
2025-12-21 17:51:05 -08:00
fullsizemalt
ad2e6a107e feat: Enhance Mod Panel (Phase 3)
Backend:
- User lookup by email/username with activity stats
- Ban/unban endpoints with role protection
- Bulk approve/reject nicknames
- Bulk resolve/dismiss reports
- Queue stats endpoint

Frontend:
- Stats cards (pending items, ban count)
- User Lookup tab with search
- User profile with activity stats
- Ban dialog with duration selector
- Bulk selection checkboxes on queues
2025-12-21 14:04:33 -08:00
fullsizemalt
c16fe559e0 feat: Add Admin Panel (Phase 2)
Backend:
- admin.py router with user management CRUD
- Platform stats endpoint
- Shows/Songs/Venues/Tours CRUD
- Protected by RoleChecker (admin only)

Frontend:
- /admin dashboard with stats cards
- Users tab with search and edit dialog
- Content tab with entity counts
- Role/ban/verification management
2025-12-21 13:50:52 -08:00
fullsizemalt
f1d8a14f75 feat: Add email verification and password reset (Phase 1)
- Add email_verified, verification_token, reset_token fields to User model
- Create email_service.py with SendGrid integration
- Add auth endpoints: verify-email, resend-verification, forgot-password, reset-password
- Create frontend pages: /verify-email, /forgot-password, /reset-password
- Add forgot password link to login page
- Add PLATFORM_ENHANCEMENT_SPEC.md specification
2025-12-21 13:28:54 -08:00
fullsizemalt
591ab8f6d3 fix: Correct leaderboards queries to use proper Rating FKs 2025-12-21 03:22:59 -08:00
fullsizemalt
24aec3b9b1 feat(backend): Add endpoints for onboarding flow (profile & prefs)
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-21 02:52:01 -08:00
fullsizemalt
a75921d633 feat(social): Add threaded comments backend support
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-21 02:43:00 -08:00
fullsizemalt
d5b5ee8192 feat(social): Add Reaction model, schema, and API endpoints
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-21 02:38:40 -08:00
fullsizemalt
a4edbb676d feat(notifications): Added notification system with mention support
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-21 02:36:02 -08:00
fullsizemalt
8093cb4e45 feat(profile): Polish My Dashboard and add public User Profile page
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-21 02:01:47 -08:00
fullsizemalt
6407c19a29 feat(backend): Add Heady Jams to leaderboards and optimize queries
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-21 01:55:38 -08:00
fullsizemalt
be7e9111f0 feat(frontend): Added Heady Version sorting to song page & fixed backend bug
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-21 01:45:33 -08:00
fullsizemalt
b879f28813 fix(backend): Handle missing users in feed API gracefully
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
2025-12-21 01:13:07 -08:00
fullsizemalt
ffce34f948 feat: Add /shows/recent and /stats/top-songs API endpoints 2025-12-20 22:19:12 -08:00
fullsizemalt
f9cdd626f4 feat: Add profile editing (bio) to settings page 2025-12-20 02:36:05 -08:00
fullsizemalt
3575ac4700 feat: Add footer, static pages, rating dialog, and improve register flow 2025-12-20 02:30:17 -08:00