241 lines
7 KiB
Markdown
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.*
|