elmeg-demo/docs/ROADMAP.md
2025-12-26 23:03:54 -08:00

241 lines
7 KiB
Markdown

# 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.*