Admin Dashboard¶
6.1 Admin Panel Overview¶
Access: URL: /admin (requires ROLE_ADMIN)
Dashboard Widgets:
Platform Statistics: - 👥 Total users (with growth %) - 💳 Active subscriptions - 💰 Monthly Recurring Revenue (MRR) - 🎵 Total practice hours this month
Charts: - User growth (last 6 months line chart) - Revenue by month (bar chart) - Practice activity (daily last 30 days) - Subscription distribution (pie chart)
Recent Activity: - New registrations (last 10) - Recent payments (last 10) - Pending moderation items - Support tickets - Failed payment alerts
Quick Actions: - Create manual subscription - Grant premium access - Upload new piece to library - Send platform announcement - Export data - View system health
6.2 User Management¶
User Directory:
Access: /admin/users
User Table: - Columns: ID, Name, Email, Role, Status, Subscription, Registered Date - Search by name or email - Filters: - Role (Student/Teacher/Org Admin/Admin) - Subscription status - Active/Inactive - Registration date range - Organization
Bulk Actions: - Select multiple users - Bulk activate/deactivate - Bulk grant premium - Bulk email - Export selected to CSV
Individual User Actions: - View detailed profile - Edit user details - Reset password - Change role - Grant/revoke premium - Activate/deactivate account - Delete user (with confirmation) - Impersonate user (login as user) - View activity log
User Detail Page:
/admin/users/{id}
Shows: - Profile information - Subscription history - Payment history - Practice statistics - Uploaded pieces - Organization memberships - Activity log - Admin notes
User Impersonation: - Click "Impersonate" - Switch to user's session - Banner shows "Viewing as [User Name]" - "Exit Impersonation" button always visible - All actions logged for security
Advanced Filters: - 🚨 Users at risk (no activity 30+ days) - 💎 High-value users (premium, long-term) - 🆓 Trial users (potential conversions) - 📉 Churned users (expired subscriptions) - 🎓 Organization members - 👨🏫 Teachers with 5+ students
6.3 Content Management¶
Music Library Management:
Access: /admin/music
Library Overview: - Total pieces count - Total upload size - Most popular pieces - Least practiced pieces - Pieces pending approval
Actions: - Upload new pieces - Edit piece metadata - Reorganize categories - Feature pieces - Remove pieces - Bulk import
Piece Details: - View/edit all metadata - View usage statistics - User ratings - User comments - Practice count - Upload source - File information
Categories Management: - Create/edit categories - Manage instruments - Manage difficulty levels - Manage genres - Tag management
6.4 Content Moderation¶
Moderation Queue:
Access: /admin/moderation/queue
Items Requiring Review: - User-uploaded pieces - Flagged comments - Reported content - Inappropriate profile content - Spam reports
User Reports:
Report Types: - Spam - Inappropriate content - Copyright violation - Harassment/abuse - Other
Report Management:
/admin/reports
Report Table: - Reporter - Reported user - Content type - Reason - Status (Pending/Reviewing/Resolved/Dismissed) - Created date
Reviewing Reports:
/admin/reports/{id}
Shows: - Report details - Content preview - Reported user history - Reporter information - Similar reports
Actions: - ✅ Approve content (dismiss report) - 🗑️ Delete content - ⚠️ Warn user - 🚫 Suspend user - 🔨 Ban user - 📝 Add to watch list - ✉️ Email user
Moderation Settings: - Auto-flag keywords - Require approval for new uploads - Spam detection sensitivity - Auto-actions for repeat offenders
6.5 Financial Management¶
Revenue Dashboard:
Access: /admin/reports/revenue
Key Metrics: - Total revenue (all time) - Revenue this month - Revenue this year - Monthly Recurring Revenue (MRR) - Annual Recurring Revenue (ARR) - Revenue growth rate %
Charts: - Revenue timeline (monthly line chart) - Revenue by payment provider (pie chart) - Revenue by plan type (bar chart) - Revenue forecast (trend line)
Subscription Analytics: - Total active subscriptions - New subscriptions this month - Cancelled this month - Churn rate: (cancelled / total) × 100 - Average subscription value - Lifetime value (LTV) estimate - Free to paid conversion rate
Transaction Management:
Access: /admin/transactions
Transaction Table: - Date/time - User - Amount - Currency - Provider (M-Pesa/PayPal/Stripe) - Status - Reference number
Filters: - Date range - Payment provider - Status (success/failed/refunded) - Min/max amount - User search
Transaction Actions: - View details - Process refund - Resend receipt - Mark as reconciled - Add notes
Refund Processing: 1. Find transaction 2. Click "Refund" 3. Enter refund amount (partial or full) 4. Enter reason 5. Confirm refund 6. System: - Processes refund via provider - Updates subscription if
Quick Actions: - View all users - Moderate content - Financial reports - System settings - Platform analytics - Send announcements - System maintenance
Recent Activity: - New user registrations - Content uploads - Moderation queue - Support tickets - Payment transactions - System alerts
System Status: - Application health - Database status - Cache performance - Queue workers - Storage usage - API status