7.0 KiB
7.0 KiB
TODO Features
User Management
- User Registration & Login: Email authentication with JWT tokens
- User Profile: Bio, stats, zones (HR/Power), equipment, FTP, weight
- Password Recovery: Email-based reset with secure tokens
- OAuth Integration: Google, Apple, Strava, Garmin
- Onboarding & Baselines: Guided setup, baseline tests, auto zone calc
- Account Roles: Athlete, Coach, Admin; team/org workspaces
- Multi-device Sessions: Seamless handoff across web/mobile
Workout Planning
- AI-Powered Planning: Generate plans by goal, time, fitness level
- Adaptive Scheduling: Auto-reschedule based on missed sessions, fatigue, weather
- Workout Scheduling: Calendar view, drag-drop, ICS sync (Google/Apple/Outlook)
- Goal Setting & Tracking: SMART goals with real-time progress bars
- Templates Library: Plan & session templates (endurance, threshold, VO2, strength)
- Export Structured Workouts: .zwo (Zwift), Garmin FIT/Workout, Wahoo, TrainerRoad
- Race/Event Planner: Target events, taper builder, gear checklist
Workout Tracking
- Workout Logging: Exercises, sets/reps/weight; power, HR, cadence, GPS
- Device Capture: Live recording (Bluetooth/ANT+ when supported), file upload (FIT/TCX/GPX)
- Tags & Notes: RPE, mood, conditions, injuries, equipment used
- Equipment Tracking: Bike/components mileage, service reminders
Advanced Analytics
- Interactive Dashboards: Charts for load (CTL/ATL/TSB), power curves, trends
- Progress Insights (AI): Automatic highlights, plateau detection, anomaly alerts
- Comparisons: Before/after, season-over-season, segment/time comparisons
- Custom Reports: Export CSV/PDF; shareable report links
Training & Coaching
- Coaching & Guidance: Coach portal, athlete assignments, plan reviews
- Virtual Training Rides: Integrations with Zwift/Rouvy/RGT; video routes
- Structured Workouts: Interval builder with targets (%FTP, %HRR, RPE)
- Messaging: Coach–athlete chat, comments on sessions, file attachments
Nutrition & Recovery
- Nutrition Planning: Meal plans, macros, carb periodization
- Nutrition Tracking: Food log, barcode/manual entry, hydration tracking
- Recovery Optimization: Sleep/HRV import, readiness score, rest day prompts
- Injury Prevention & Management: Screeners, red-flag alerts, return-to-ride flow
- Supplement & Allergy Flags: Notes and reminders in plan builder
Community & Social
- Social Sharing: One-click share to Strava/social with privacy controls
- Community Forum: Topics, groups/clubs, moderation tools
- Leaderboards: Global, club, event, and route/segment leaderboards
- Challenges & Streaks: Time-boxed events, badges, streak protection
Gamification & Engagement
- Achievements & Badges: Milestones (consistency, PRs, climbing, streaks)
- Personalized Recommendations (AI): Next best workout, videos, articles
- Rewards & Incentives: Points store, partner discounts, raffles
Integrations & Data
- Wearable Sync: Garmin, Wahoo, COROS, Apple Health, Google Fit
- Platform Sync: Strava, TrainingPeaks, Intervals.icu (calendar + workout push)
- Music Integration: Spotify/Apple Music workout-matched playlists
- Data Import/Export: Bulk FIT/TCX/GPX import; CSV/JSON export; takeout ZIP
- Public API & Webhooks: For partners, coaches, clubs
Notifications & Comms
- Reminders: Email, push, SMS; smart timing
- Digest Emails: Weekly plan, monthly progress
- Real-time Alerts: Overtraining risk, missed session, weather hazard
Accessibility & Internationalization
- A11y: WCAG 2.2 AA, keyboard nav, screen reader labels
- Localization: i18n framework, units (imperial/metric), timezones
- Color-blind Safe Palettes: Analytics & maps
Mobile & Apps
- PWA Offline Mode: Log workouts offline; sync when online
- Native App Shell: Background sync, notifications, wearables bridge
Security, Privacy & Compliance
- Privacy Controls: Public/private by item, club privacy, anonymized leaderboards
- Data Protection: Encryption at rest/in transit, secrets rotation
- Compliance: GDPR/CCPA requests (export/delete), age gating, COPPA checks
- Audit Logs: Admin and coach actions
Admin, Billing & Ops
- Admin Console: User management, feature flags, content moderation
- Subscriptions: Free/Pro/Coach tiers, trials, coupons, taxes (Stripe)
- Telemetry & Observability: Metrics, tracing, error reporting, uptime SLOs
- Scalability: Queueing for imports/exports, background jobs
- Backups & DR: Automated backups, restore drills, RTO/RPO defined
Content & Library
- Exercise Library: Strength/mobility videos with cues and progressions
- Knowledge Base: Articles on training, nutrition, recovery
- Route Library: GPX planner/import, elevation profiles, weather overlays
Possible Future Features
- Virtual Reality (VR) Integration: Immersive rides with real-time metrics
- Augmented Reality (AR) Integration: HUD overlays during rides
- Machine Learning (ML) Integration: Injury risk models, plan optimization, weather-aware ETA and fueling estimates
Completed - Phase 1: Authentication & User Management ✅
Infrastructure
- Migrated from Python/Flask to Go with Chi router
- Restructured project with clean architecture (
cmd/,internal/,pkg/) - PostgreSQL + GORM ORM setup with migrations
- Docker/Podman containerization with multi-stage builds
Authentication
- User signup with validation (username, email, password strength)
- User login with JWT tokens (access + refresh)
- Password hashing with bcrypt
- Protected routes with Bearer token authentication
- Password reset flow with email tokens
User Profiles
- User model with relationships (Profile, PasswordReset, Sessions)
- User profile with stats (HR zones, FTP, weight, total rides, distance, time)
- Email service integration (Resend) for notifications
- Automatic profile creation on user signup
Code Quality
- Repository pattern for data access
- Service layer for business logic
- Auth middleware for protected routes
- Error handling and validation
- Environment configuration with .env
Next Phase: Phase 2 - User Profiles & Stats Endpoints
Planned Features
- GET/PUT
/api/protected/profile- Full profile management - POST/GET
/api/equipment- Bike/gear management - POST/GET
/api/stats- Ride statistics - GET
/api/zones- Calculate training zones (auto from FTP/HR) - Equipment tracking (brand, model, weight, mileage)
- Stats aggregation and trending
After Phase 2: Phase 3 - OAuth Integration
- Google OAuth 2.0
- Strava API integration
- Apple Sign-In
- Garmin Connect