# Elmeg Platform Roadmap

**Last Updated:** 2025-12-27  
**Status:** Production Ready ✅

---

## Current State Summary

Elmeg is a fully functional platform for the Goose fan community to track shows, rate performances, write reviews, and engage with other fans. All core features are implemented and deployed.

---

## ✅ Completed Features

### Core Platform

| Feature | Description |
|---------|-------------|
| Show Database | Complete show history with venues, tours, setlists |
| Performance Tracking | Individual song performances linked to shows |
| Song Library | All songs with original artist info, cover tracking |
| Venue Database | All venues with location data |
| Tour Management | Tours with date ranges |

### User System

| Feature | Description |
|---------|-------------|
| Registration | Email/password with verification |
| Password Reset | Secure token-based reset via email |
| Profile | Username, display name, bio, avatar customization |
| Privacy Controls | Public/private profile, leaderboard opt-out |
| Theme Persistence | Light/dark mode synced to account |
| GDPR Data Export | Download all personal data as JSON |
| Account Deletion | Full data removal with email confirmation |

### Social Features

| Feature | Description |
|---------|-------------|
| Reviews | Blurb + full content + score for any entity |
| Ratings | Granular scores for performances, shows, songs |
| Comments | Threaded comments with @mentions |
| Reactions | Like/love reactions on reviews/comments |
| Activity Feed | "Living links" to reviewed content |
| Groups | Create/join fan groups |
| Chase Songs | Track songs you want to hear live |
| Attendance | Mark shows you've attended |

### Gamification

| Feature | Description |
|---------|-------------|
| XP System | Earn XP for activities |
| Levels | Level up based on XP |
| Badges | Unlock achievements |
| Leaderboards | Community rankings |
| Avatar Unlocks | XP-gated avatar customization |

### Rankings & Discovery

| Feature | Description |
|---------|-------------|
| Performance Rankings | #X of Y versions, average ratings |
| Heady Badges | Top-rated versions highlighted |
| Search | Full-text search across all entities |
| Videos Page | YouTube links for performances |

### Email Notifications

| Feature | Description |
|---------|-------------|
| Verification | Account email verification |
| Password Reset | Secure reset emails |
| Reply Alerts | Email when someone replies to your comment |
| Mention Alerts | Email when you're @mentioned |
| Chase Alerts | Email when a chased song is played |
| Weekly Digest | Activity summary + community highlights |

### Admin Tools

| Feature | Description |
|---------|-------------|
| User Management | View/edit users, roles, verification |
| Content CRUD | Shows, songs, venues, tours, performances |
| Platform Stats | Dashboard with key metrics |
| Email Testing | `POST /api/admin/test-email` |
| Digest Trigger | `POST /api/admin/send-weekly-digest` |
| Link Import | Bulk import external links |

---

## 🔄 Future Enhancements

### Priority: High

| Feature | Description | Complexity |
|---------|-------------|------------|
| Automated Weekly Digest | Add cron job to server to auto-send Sundays 9am UTC | Low |
| Error Tracking | Integrate Sentry for backend error monitoring | Medium |
| Uptime Monitoring | Set up UptimeRobot or similar | Low |

### Priority: Medium

| Feature | Description | Complexity |
|---------|-------------|------------|
| One-Click Unsubscribe | Add token-based unsubscribe links in emails | Medium |
| Email Templates | Move to proper template engine (Jinja2) | Medium |
| Rate Limiting | Add request rate limiting to protect API | Medium |
| API Caching | Redis cache for frequently accessed data | Medium |
| Image Uploads | User profile pictures, venue photos | High |

### Priority: Low (Nice-to-Have)

| Feature | Description | Complexity |
|---------|-------------|------------|
| Social Auth | Google/Discord OAuth login | Medium |
| Two-Factor Auth | TOTP-based 2FA | High |
| Push Notifications | Web push for real-time alerts | High |
| Mobile App | Native iOS/Android apps | Very High |
| Dark Mode System | Respect system preference by default | Low |
| PWA | Progressive web app for mobile | Medium |

---

## 🧹 Technical Debt

| Item | Description | Priority |
|------|-------------|----------|
| Remove deprecated `version` | docker-compose.yml version key | Low |
| Clean unused files | `scripts/cron_weekly_digest.sh` not used | Low |
| Add test coverage | No automated tests currently | Medium |
| API Documentation | OpenAPI docs exist but could be enhanced | Low |
| Code comments | Some complex functions need better docs | Low |

---

## 🚀 Deployment Info

| Component | URL/Location |
|-----------|--------------|
| Production | <https://elmeg.xyz> |
| Analytics | <https://stats.elmeg.xyz> |
| Bug Tracker | <https://bugs.elmeg.xyz> → /bugs |
| API Docs | <https://elmeg.xyz/docs> |
| Server | tangible-aacorn (Hetzner ARM64) |
| Git | <https://git.runfoo.run/runfoo-org/elmeg-demo> |

### Container Stack

- `backend` - FastAPI (Python 3.11)
- `frontend` - Next.js 15
- `db` - PostgreSQL 15
- `db-backup` - Auto daily backups (7 days, 4 weeks, 6 months)
- `umami` - Analytics
- `umami-db` - Analytics database

### Email

- Provider: Postal (self-hosted)
- SMTP: smtp.elmeg.xyz:25
- DNS: SPF, DKIM, DMARC configured

---

## 📝 Quick Reference: Key API Endpoints

### User Preferences

```
GET  /api/preferences/          # Get all preferences
PUT  /api/preferences/          # Update preferences
```

### Email Notifications (triggered automatically)

- Reply: When someone replies to your comment
- Mention: When you're @mentioned  
- Chase: When a chased song is played (via import)
- Digest: Admin triggers `POST /api/admin/send-weekly-digest`

### GDPR/Privacy

```
GET    /api/users/me/export    # Download all your data
DELETE /api/users/me           # Delete account (body: {"confirm_email": "..."})
```

### Admin (requires admin role)

```
POST /api/admin/test-email?to_email=...   # Test email config
POST /api/admin/send-weekly-digest        # Trigger weekly digest
GET  /api/admin/stats                     # Platform statistics
```

---

## 📅 Session History

### Dec 27, 2025

- Fixed auth persistence (missing DB columns)
- Added performance rankings (#X of Y) with heady badges
- Theme persistence to backend
- GDPR data export + account deletion
- Email notifications (reply, mention, chase, digest)
- bugs.elmeg.xyz subdomain
- Admin email endpoints

### Dec 26, 2025

- Launch readiness polish
- Favicon, robots.txt, sitemap
- SEO meta tags

### Dec 24-25, 2025

- Umami analytics integration
- Database backup automation
- UI polish (border-radius, emojis removed)

### Dec 22-23, 2025

- YouTube video integration
- Postal email setup
- Email verification working

---

## 🎯 Next Session Priorities

1. **Set up automated weekly digest cron** (if desired)
2. **Test all notification flows end-to-end**
3. **Consider error tracking (Sentry)**
4. **Any user-reported bugs or requests**

---

*This document is the source of truth for Elmeg platform status and roadmap.*
