Skip to content

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