Comprehensive roadmap for next session handoff
This commit is contained in:
parent
59d2bb715a
commit
e9f34f02ad
1 changed files with 221 additions and 53 deletions
274
docs/ROADMAP.md
274
docs/ROADMAP.md
|
|
@ -1,73 +1,241 @@
|
|||
# Elmeg Platform Roadmap
|
||||
|
||||
**Last Updated:** 2025-12-27
|
||||
**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.*
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue