Description
Concert Companion treats live music like a product people return to — not a notes app with dates. Upcoming vs Memories, ticket-style cards (including a torn-ticket look for past shows), photos, comments, and calendar export sit on a Vite + React + Supabase stack with server-side filter/sort/pagination.
Concert life, end to end
- Add shows manually or paste a URL — Edge Functions scrape artist, venue, date, and description.
- Tickets as links or uploads (PDF/image); photo galleries; comments and memories; attended status.
- Advanced filters (artist, venue, date range, ownership, shared, tickets) with flexible sorting and pagination.
- Google / Apple Calendar integration; locale-aware date and time formats.
Social without chaos
Friend requests, explicit concert shares, optional auto-share, and clear access indicators (overlapping avatars, different color language for yours vs friends’). Private profiles stay out of search. RLS and storage policies keep tickets and photos behind real access rules.
The fun layer
- Achievements, levels, titles, and daily/weekly/monthly challenges with XP (e.g. create concert → XP).
- Nearby events from geolocation + venue coordinates — distance on cards.
- Personal analytics (Recharts) and an admin analytics dashboard.
- In-app notification bell + settings; onboarding wizard for new users.
- Admin panel for users and concerts with role-based access (admin / moderator / user).
Engineering shape
Clear layers: supabase services → query keys → domain hooks → UI folders with CSS modules. Zod on forms. Ticket-inspired UI on shadcn + Framer Motion, dark mode, mobile-first. Live at concert-companion.vercel.app.
Key outcomes
- Built a full concert archive with URL scrape ingest, tickets, photos, and server-side filter/sort.
- Friend sharing and privacy on Postgres RLS, plus nearby events from geolocation.
- Gamification (XP, achievements, challenges), analytics, notifications, onboarding, and admin.