Elmeg - The ultimate platform for fandom communities
Find a file
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
.forgejo/workflows feat: Add CI/CD workflow for testing/production branch deployments 2025-12-20 23:49:36 -08:00
.specify feat: Initial elmeg-demo with full-stack fandom archive platform 2025-12-19 22:01:29 -08:00
backend feat: Gamification sprint complete 2025-12-21 19:21:20 -08:00
docs feat: Gamification sprint complete 2025-12-21 19:21:20 -08:00
email feat: Complete venues overhaul 2025-12-21 17:51:05 -08:00
frontend feat: Gamification sprint complete 2025-12-21 19:21:20 -08:00
.gitignore feat: Initial elmeg-demo with full-stack fandom archive platform 2025-12-19 22:01:29 -08:00
DEPLOY.md feat: Initial elmeg-demo with full-stack fandom archive platform 2025-12-19 22:01:29 -08:00
docker-compose.yml fix: Use sh in docker-compose command for start.sh 2025-12-21 15:40:10 -08:00
LOCAL_DEV.md feat: Initial elmeg-demo with full-stack fandom archive platform 2025-12-19 22:01:29 -08:00
README.md feat: Initial elmeg-demo with full-stack fandom archive platform 2025-12-19 22:01:29 -08:00
traefik-routes.yml Add missing migration and finalize deployment config 2025-12-19 22:52:32 -08:00
VPS_HANDOFF.md feat: Initial elmeg-demo with full-stack fandom archive platform 2025-12-19 22:01:29 -08:00

Elmeg Demo Environment

This is a fully-populated demo instance of Elmeg with Goose data and 12 diverse user personas.

Quick Start

1. Backend (Port 8020)

cd backend
# Create virtual environment if you haven't
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Run server
DATABASE_URL='sqlite:///./elmeg-demo.db' SECRET_KEY='demo-secret' uvicorn main:app --reload --port 8020

2. Frontend (Port 3020)

cd frontend
# Install dependencies if you haven't
npm install

# Run dev server
NEXT_PUBLIC_API_URL=http://localhost:8020 npm run dev -- -p 3020

🧪 Testing

Once running, visit:

User Personas (All passwords: demo123)

1. TheArchivist (archivist@demo.com)

  • Role: User
  • Wiki Mode: ON
  • Behavior: Pure data consumer, no social interaction
  • Use Case: Tests wiki mode functionality

2. StatNerd420 (statnerd@demo.com)

  • Role: User
  • Focus: Attendance tracking, gap charts
  • Activity: Marks attendance at 8 shows
  • Use Case: Power user who loves stats

3. CriticalListener (reviewer@demo.com)

  • Role: User
  • Focus: Detailed reviews
  • Activity: 3 in-depth show reviews
  • Use Case: Content creator, thoughtful analysis

4. CasualFan (casual@demo.com)

  • Role: User
  • Focus: Occasional engagement
  • Activity: 2 comments on performances
  • Use Case: Average user, light participation

5. NortheastHonkers (groupleader@demo.com)

  • Role: User
  • Focus: Community organizing
  • Activity: Created "Northeast Honkers" group, posts
  • Use Case: Group admin, regional organizer

6. ModGoose (mod@demo.com)

  • Role: Moderator
  • Focus: Content moderation
  • Activity: Approved performance nicknames
  • Use Case: Tests moderation dashboard

7. AdminBird (admin@demo.com)

  • Role: Admin (Superuser)
  • Focus: Platform administration
  • Activity: Full access to all features
  • Use Case: Tests admin functionality

8. NewToGoose (newbie@demo.com)

  • Role: User
  • Focus: Just discovering the band
  • Activity: Minimal (new user)
  • Use Case: Onboarding experience

9. TaperTom (taper@demo.com)

  • Role: User
  • Focus: Recording quality
  • Activity: Comments on audio quality for 4 shows
  • Use Case: Niche interest user

10. RoadWarrior (tourfollower@demo.com)

  • Role: User
  • Focus: Tour following
  • Activity: Attended ALL 10 shows
  • Use Case: Super fan, high engagement

11. SilentHonker (lurker@demo.com)

  • Role: User
  • Wiki Mode: ON
  • Behavior: Reads everything, posts nothing
  • Use Case: Passive consumer

12. HypeGoose (hype@demo.com)

  • Role: User
  • Focus: Extreme enthusiasm
  • Activity: Rates everything 10/10, "FIRE 🔥" reviews
  • Use Case: Enthusiastic but low-quality content

Demo Data

  • Vertical: Goose
  • Venues: 5 (Red Rocks, Capitol Theatre, Radio City, The Gorge, Brooklyn Bowl)
  • Tours: 2 (Fall 2023, Summer 2024)
  • Songs: 8 (Hungersite, Arcadia, Hot Tea, Tumble, etc.)
  • Shows: 10 (spanning 2024)
  • Performances: 50 (5 songs per show)
  • Groups: 1 (Northeast Honkers)
  • Reviews: 8 (mix of thoughtful and hype)
  • Comments: 10 (various contexts)
  • Attendance: 18 records (StatNerd + RoadWarrior)
  • Nicknames: 3 approved performance nicknames

Testing Scenarios

Wiki Mode

  • Login as archivist@demo.com or lurker@demo.com
  • Verify no social features visible

Moderation

  • Login as mod@demo.com
  • Navigate to /admin
  • Review nickname queue

Admin Dashboard

  • Login as admin@demo.com
  • Full access to /admin
  • Manage reports, users, content

Group Features

  • Login as groupleader@demo.com
  • View /groups
  • Post in "Northeast Honkers"

Activity Feed

  • View home page
  • See recent reviews, attendance, posts
  • Press Cmd+K
  • Search for "Hungersite" or "Red Rocks"
  • Navigate to performance pages

Performance Pages

  • Click any song in a setlist
  • View gap stats, times played
  • Navigate between versions

Resetting Demo Data

cd /Users/ten/ANTIGRAVITY/elmeg-demo/backend
rm elmeg-demo.db
DATABASE_URL="sqlite:///./elmeg-demo.db" alembic upgrade head
DATABASE_URL="sqlite:///./elmeg-demo.db" python3 quick_seed.py

Notes

  • This demo is completely separate from the main elmeg codebase
  • Uses separate database (elmeg-demo.db)
  • Runs on different ports (8001/3001 vs 8000/3000)
  • Safe to experiment and break things!