Comprehensive roadmap for next session handoff

This commit is contained in:
fullsizemalt 2025-12-26 23:03:54 -08:00
parent 59d2bb715a
commit e9f34f02ad

View file

@ -1,73 +1,241 @@
# Elmeg Platform Roadmap
**Last Updated:** 2025-12-27
**Status:** Production Ready ✅
---
## All Major Features Complete
## Current State Summary
### ✅ Core Platform
- Email verification & password reset (Postal)
- Performance rankings (#X of Y) with heady badges
- Theme persistence (syncs with user preferences)
- Reviews with avatar, username, date, granular scores
- Activity feed with living links
### ✅ User Settings
- Privacy toggles (profile, attendance, leaderboards)
- Notification preference toggles
- Avatar XP unlock system
- GDPR data export
- Account deletion
### ✅ Rating System
- User's existing rating shown on load
- Combined Rating + Review scores
- Heady badge for #1 ranked versions with avg >= 8.0
### ✅ Email Notifications
- Reply notifications (when someone replies to your comment)
- Mention notifications (when you're @mentioned)
- Chase song alerts (when a song you're chasing is played)
- Weekly digest emails (community highlights + user activity)
- Admin API to trigger digest: `POST /api/admin/send-weekly-digest`
- Admin API to test email: `POST /api/admin/test-email`
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.
---
## Recent Completions (Dec 27, 2025)
## ✅ Completed Features
| Feature | Status |
|---------|--------|
| GDPR Data Export | ✅ /users/me/export endpoint |
| Account Deletion | ✅ /users/me DELETE endpoint |
| bugs.elmeg.xyz | ✅ Redirects to /bugs |
| Email Reply/Mention Triggers | ✅ Sends when comments created |
| Chase Song Notifications | ✅ Hooks into performance import |
| Weekly Digest Service | ✅ services/weekly_digest.py |
| Admin Email Endpoints | ✅ Send digest + test email |
### 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 |
---
## Deployment Info
## 🔄 Future Enhancements
- **Production:** <https://elmeg.xyz>
- **Analytics:** <https://stats.elmeg.xyz>
- **Bug Tracker:** <https://bugs.elmeg.xyz><https://elmeg.xyz/bugs>
- **Server:** tangible-aacorn (Hetzner ARM64)
- **Git:** <https://git.runfoo.run/runfoo-org/elmeg-demo>
### 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 |
---
## Optional: System Cron for Weekly Digest
## 🧹 Technical Debt
To automatically send weekly digests, add this to server crontab:
| 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
```bash
# Send weekly digest every Sunday at 9am UTC
0 9 * * 0 curl -X POST https://elmeg.xyz/api/admin/send-weekly-digest -H "Authorization: Bearer $ADMIN_JWT_TOKEN"
```
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.*