Commit graph

41 commits

Author SHA1 Message Date
fullsizemalt
3d090082fb fix: use dicts instead of pydantic models in manual serialization to prevent crashes
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2026-01-01 02:37:58 -08:00
fullsizemalt
9c0abc12e3 refactor: robust manual serialization for shows to fix recursion crash
Some checks failed
Deploy Fediversion / deploy (push) Failing after 0s
2026-01-01 02:34:31 -08:00
fullsizemalt
696d317c6c revert: remove manual serialization to fix crash
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-31 18:41:50 -08:00
fullsizemalt
7edec61af1 fix: manual population of show relationships in response
Some checks failed
Deploy Fediversion / deploy (push) Failing after 0s
2025-12-31 18:40:46 -08:00
fullsizemalt
6b9d778b4d fix: explicit from_attributes config for nested schemas
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-31 18:39:13 -08:00
fullsizemalt
9e28fc168a debug: serialize showread
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-31 18:35:42 -08:00
fullsizemalt
8d55b1303b debug: log show relationships
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-31 18:34:39 -08:00
fullsizemalt
18b102558d feat: redesign band hub page and populate song stats
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-31 14:29:35 -08:00
fullsizemalt
29cc0289d6 feat: redesign song detail page with artist stats and grid layout
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-31 10:05:53 -08:00
fullsizemalt
1d8eb36034 fix: resolve duplicate youtube_link argument in read_song
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-31 09:41:51 -08:00
fullsizemalt
dfeeb2ae81 feat: show artist and original artist on song detail page
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-31 09:34:12 -08:00
fullsizemalt
2941fa482e feat(backend): Implement automation scheduler and pagination envelope 2025-12-30 22:29:04 -08:00
fullsizemalt
3aaf35d43b refactor(api): standardize venues endpoint
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Backend: /api/venues returns PaginatedResponse envelope
- Frontend: Updated VenuesPage, AdminVenuesPage, VerticalVenuesPage to consume envelope
2025-12-30 20:35:59 -08:00
fullsizemalt
c0e3e2a7e2 refactor(api): standardize songs endpoint
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Backend: /api/songs returns PaginatedResponse envelope
- Frontend: Updated SongsPage, AdminSongsPage, AdminSequencesPage, BandPage to consume envelope
2025-12-30 20:33:18 -08:00
fullsizemalt
c860075681 feat(shows): redesign global shows hub
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Frontend: Implemented Tabbed interface (Recent, My Feed, Upcoming, By Band)
- Frontend: Added BandGrid component with selection logic
- Frontend: Added FilterPills component for active filters
- Backend: Added show_count to Verticals API
- Backend: Updated read_shows to support correct sorting for Upcoming status
2025-12-30 20:18:10 -08:00
fullsizemalt
c090a395dc feat(videos): add video icons to setlists and song versions
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Backend: Added video_links relationship to Performance model
- Backend: Updated shows and songs routers to eager-load videos and populate youtube_link
- Frontend: Added YouTube icon to performance list items if video exists
2025-12-30 19:52:04 -08:00
fullsizemalt
8e7be96991 refactor: clarify Top Songs definition
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Updated backend  to support
- Renamed frontend section from 'Top Songs' to 'Most Played Songs'
- Ensuring terms are clearly defined throughout the site
2025-12-30 19:47:55 -08:00
fullsizemalt
8d7339b950 fix(shows): fix venue visibility and song filtering
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Added eager loading of venue and tour to shows API endpoints to fix 'Unknown Venue' display
- Fixed query param  ->  in getTopSongs to correctly filter suggested songs
2025-12-30 19:38:19 -08:00
fullsizemalt
7d266208ae feat: add modular Video entity with many-to-many relationships
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Video model with VideoType/VideoPlatform enums
- Junction tables: VideoShow, VideoPerformance, VideoSong, VideoMusician
- Full API router with CRUD, entity-specific endpoints, link management
- Legacy compatibility endpoint for existing youtube_link fields
- Building for scale, no shortcuts
2025-12-30 19:26:51 -08:00
fullsizemalt
6cf9a100d4 fix: backend default sort by date desc, frontend enable tier filters
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-30 16:58:39 -08:00
fullsizemalt
7d10d195f3 fix: add vertical_id and vertical slug filter params to shows endpoint
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-30 13:20:38 -08:00
fullsizemalt
e07c23aceb feat(social): add social handles to settings page
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-29 21:39:53 -08:00
fullsizemalt
58f077268f feat(social): add profile poster, social handles, remove X
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-29 21:05:34 -08:00
fullsizemalt
7b8ba4b54c feat: User Personalization, Playlists, Recommendations, and DSO Importer
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-29 16:28:43 -08:00
fullsizemalt
5b8cfffcf9 fix: Songs API filtering and default vertical
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Added vertical query param to GET /songs for correct filtering
- Changed default vertical to Phish (was Goose) to avoid empty data for new users
2025-12-29 00:03:56 -08:00
fullsizemalt
f966ef7c2e feat: Add comprehensive analytics API - gaps, velocity, trends, bustouts, debuts
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
New endpoints:
- GET /analytics/gaps/{vertical} - Songs overdue for a play
- GET /analytics/velocity/{vertical} - Hot vs cooling songs
- GET /analytics/trends/{vertical} - Monthly/quarterly chart data
- GET /analytics/stats/{vertical} - Aggregate band statistics
- GET /analytics/bustouts/{vertical} - Songs returning after long gaps
- GET /analytics/debut-songs/{vertical} - Recently debuted songs
2025-12-28 23:45:10 -08:00
fullsizemalt
b38da24055 feat: Cross-band milestone - Festivals, Playlists, Musicians, Venue Timeline
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
Sprint 2: Added 54 musicians with 78 band memberships
- Phish, Widespread Panic, Umphreys McGee core members
- Notable sit-in artists (Karl Denson, Branford Marsalis, Derek/Susan Trucks)
- Toy Factory Project supergroup (Oteil, Marcus King, Charlie Starr)

Sprint 4: Festival entity for multi-band events
- Festival and ShowFestival models
- /festivals API with list, detail, by-band endpoints

Sprint 5: User Playlists for curated collections
- UserPlaylist and PlaylistPerformance models
- Full CRUD /playlists API

Sprint 6: Venue Timeline endpoint
- /venues/{slug}/timeline for chronological cross-band history

Blockers (need production data):
- Venue linking script (no venues in local DB)
- Canon song linking (no songs in local DB)
2025-12-28 23:34:05 -08:00
fullsizemalt
af6a4ae5d3 feat: Add VenueCanon for cross-band venue deduplication with across-bands endpoint
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 23:12:42 -08:00
fullsizemalt
60e2abfb65 feat: Add cross-band song discovery - versions endpoint and UI 2025-12-28 23:10:20 -08:00
fullsizemalt
cf7748a980 feat: Add band profile and musician profile pages with API endpoints and database support
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 23:00:30 -08:00
fullsizemalt
1dab125396 feat: Redesign navigation for scalability - replace dropdown with search
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 21:35:18 -08:00
fullsizemalt
9914fdb802 feat: Add band name to show pages and fix multi-band UX issues
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
2025-12-28 18:46:21 -08:00
fullsizemalt
c8e5a48d57 feat: Groups refinement and band theming
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Group model: Add vertical_id scoping, image_url
- Vertical model: Add logo_url, accent_color for branding
- Groups router: Add vertical filter, member count, leave endpoint
- Fix CI/CD deploy.yml git clone URL (runfoo-org)
2025-12-28 16:57:41 -08:00
fullsizemalt
99e5924588 feat: Sprint 2 - empty states, discovery, attendance stats
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Add EmptyState component with 6 variants
- Add discover.py router with smart filtering
  - GET /discover/shows (year, venue, city, tour filters)
  - GET /discover/years
  - GET /discover/recent
- Add GET /attendance/me/stats (by vertical breakdown)
2025-12-28 16:49:24 -08:00
fullsizemalt
465017cda9 feat: Add On This Day endpoint (P2)
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- GET /on-this-day - shows matching today's month/day in history
- GET /on-this-day/highlights - top 5 for homepage widget
- Supports ?vertical= filter and ?month=&day= override
2025-12-28 16:39:52 -08:00
fullsizemalt
159cbc853c feat: Enhance musician API with cross-band sit-in tracking
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Add sit_in_summary to GET /musicians/{slug}
- Add stats: total_bands, current_bands, total_sit_ins
- Include song_title, show_date, vertical in guest appearances
- Add seed_musicians.py for initial musician data
2025-12-28 16:30:38 -08:00
fullsizemalt
5b236608f8 feat: Add SongCanon API for cross-band song linking
- Add routers/canon.py with endpoints:
  - GET /canon - list all canonical songs with versions
  - GET /canon/{slug} - get canon with all band versions
  - GET /canon/song/{id}/related - get related versions
- Add link_canon_songs.py auto-linker script
  - Finds songs with same title across bands
  - Creates SongCanon entries automatically
  - Run with --apply to execute
2025-12-28 16:28:58 -08:00
fullsizemalt
19c5e97e7f feat: Add scene filtering to verticals API
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- GET /verticals now supports ?scene= parameter
- Add GET /verticals/scenes endpoint
- Filter verticals by is_active=true
2025-12-28 16:07:46 -08:00
fullsizemalt
5ced96f4e6 feat: Add personalized feed endpoint with vertical filtering
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
- Add GET /feed/me endpoint
- Filters reviews and attendance by user's band preferences
- Excludes 'hidden' display_mode bands
- Falls back to all bands if no preferences set
2025-12-28 16:05:43 -08:00
fullsizemalt
c1c041bbe9 feat: Add user vertical preferences API and onboarding UI
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
Backend:
- Add routers/verticals.py with CRUD endpoints
- GET /verticals - list all bands
- POST /verticals/preferences/bulk - onboarding bulk set
- CRUD for individual preferences

Frontend:
- Add BandOnboarding component with checkbox grid
- Add /onboarding page route
- Calls bulk preferences API on submit
2025-12-28 16:04:18 -08:00
fullsizemalt
b4cddf41ea feat: Initialize Fediversion multi-band platform
- Fork elmeg-demo codebase for multi-band support
- Add data importer infrastructure with base class
- Create band-specific importers:
  - phish.py: Phish.net API v5
  - grateful_dead.py: Grateful Stats API
  - setlistfm.py: Dead & Company, Billy Strings (Setlist.fm)
- Add spec-kit configuration for Gemini
- Update README with supported bands and architecture
2025-12-28 12:39:28 -08:00