Page: Creator Dashboard
Code: CDSH Route: /dashboard/creator Access: Creator Priority: P0 Test Script: scripts/page-tests/test-CDSH.sh Components: src/components/dashboard/CreatorDashboard.tsx
Purpose
Central hub for Creators to manage their courses, track earnings, approve Student-Teachers, monitor course performance, and handle creator-specific workflows.
Connections
Incoming (users arrive from)
| Source | Trigger | Notes |
| LGIN | Successful login (Creator role) | Default post-login |
| Nav | "Dashboard" link | Global navigation |
| STUD | "Dashboard" link | From Creator Studio |
| CPRO | "Dashboard" link | From own profile |
Outgoing (users navigate to)
| Target | Trigger | Notes |
| STUD | "Creator Studio" / "Manage Courses" | Course management |
| CPRO | "View Public Profile" | See public creator profile |
| CDET | Course card click | View course detail |
| CANA | "View Analytics" | Detailed analytics |
Data Requirements
| Entity | Fields Used | Purpose |
| courses | id, title, student_count, rating, is_active | Course list |
| enrollments | course_id, status | Enrollment counts |
| student_teachers | course_id, user_id, is_active | ST count |
| payment_splits | amount_cents, status (where creator) | Earnings |
Sections
Header Bar
- • Greeting: "Welcome back, [First Name]!"
- • Subtitle: "Here's how your courses are performing"
- • "Create Course" button
Quick Stats (3 cards)
- • Total Courses (with icon)
- • Total Students (with icon)
- • Active Student-Teachers (with icon)
Earnings Overview (card)
- • Pending Balance, This Month, Total Earned
- • Minimum payout threshold display
- • "Request Payout" button (enabled when balance >= threshold)
- • "View Details" link
Pending Approvals (card)
- • Badge with count when items pending
- • Empty state with checkmark icon
Your Courses (grid)
- • Course cards with thumbnail placeholder
- • Student count, rating display
- • Active/Draft badge
- • View/Edit action buttons
- • "Manage All" link
Quick Actions (card)
- • Creator Studio, Edit Profile, View Analytics
User Stories Fulfilled
- • US-P003
- • US-C033
- • US-P062
- • US-P063
- • US-C035
States & Variations
| State | Description |
| New Creator | No courses yet, prominent "Create Course" CTA |
| Active Creator | Courses live, students enrolled |
| Pending Actions | Badge on Pending Approvals |
| Payout Available | Highlight royalty balance |
| Loading | Skeleton animation |
| Error | Retry button |
Mobile Considerations
- • Earnings summary at top
- • Pending approvals with swipe actions
- • Course cards stack vertically
- • Collapsible sections
Error Handling
| Error | Display |
| Data load fails | "Unable to load dashboard. [Retry]" |
| Approval fails | "Unable to process. Please try again." |
Analytics Events
| Event | Trigger | Data |
page_view | Page load | courses_count, pending_count |
approve_st | ST approved | st_id, course_id |
approve_cert | Cert issued | student_id, course_id |
view_course | Course clicked | course_id |
request_payout | Payout clicked | amount |
Notes
- • CD-020: Creator gets 15% royalty
- • Creators may also be Students/STs (multi-role dashboard)
- • Email notifications for pending approvals via Resend (future)
- • Payout requires active Stripe Connect (see SETT)
- • Request Payout button shows UI but POST endpoint not implemented yet
Features
Earnings Overview
- ✓
Royalty balance (pending 15%) [US-C035]
- ✓
Total earned (lifetime) [US-C035]
- ✓
This month earnings [US-C035]
- ✓
"Request Payout" button [US-C035] UI only, not wired to API
- ✓
"View Details" link
Pending Approvals
- ○
ST applications with approve/decline [US-P063] Block 7
- ○
Certification requests with issue/decline [US-P062] Block 6
- ○
Homework reviews with approve/request resubmit Block 3.5 enhancement
- ✓
Badge count for pending items [US-P003]
- ✓
Empty state: "No pending approvals"
Course Performance
- ✓
Course grid with stats [US-C033]
- ✓
Active students per course [US-C033]
- ○
Completion rate per course [US-C033] Not shown
- ✓
Rating per course [US-C033]
- ○
Revenue per course [US-C035] Not shown
- ○
Sort by students/revenue/rating [US-C033]
- ✓
View/Edit buttons per course
- ✓
Active/Draft status badge
Student-Teacher Overview
- ○
List of STs certified for creator's courses [US-P003] Block 7
- ○
Students taught count per ST [US-P003] Block 7
Recent Activity
- ○
Timeline of enrollments, completions, certifications [US-P003] Future
Quick Actions
- ✓
"Create Course" button (header)
- ✓
"Creator Studio" quick action
- ✓
"Edit Profile" quick action
- ✓
"View Analytics" quick action
Interactive Elements
Buttons: 1/2 active
Links: 8/11 active
Buttons
| Element | Component | Action | Status |
| Retry | CreatorDashboard | Refetch dashboard data | active |
| Request Payout | CreatorDashboard | Request payout | inactive |
Links
Internal Links
| Element | Target | Status |
| Create Course | /dashboard/creator/studio | active |
| View Details (earnings) | /dashboard/creator/earnings | inactive |
| Manage All | /dashboard/creator/studio | active |
| Creator Studio | /dashboard/creator/studio | active |
| Edit Profile | /profile | active |
| View Analytics | /dashboard/creator/analytics | active |
| View (course) | /courses/[slug] | active |
| Edit (course) | /dashboard/creator/studio/[id] | inactive |
| Create Your First Course | /dashboard/creator/studio | active |
Target Pages Status
| Target | Page Code | Status |
/dashboard/creator/studio | STUD | PageSpecView |
/dashboard/creator/earnings | - | Missing |
/dashboard/creator/analytics | CANA | PageSpecView |
/profile | PROF | PageSpecView |
/courses/[slug] | CDET | Implemented |
Verification Notes
Verified: 2026-01-08 Consolidated: 2026-01-08
Verified Components
- ⚠
src/components/dashboard/CreatorDashboard.tsx (2 TODOs)
Screenshots
- 📷
CDSH-2026-01-08-16-34-18.png - Full page showing all sections, Guy Rymberg logged in with 4 courses
Notes
- • /dashboard/creator/earnings page doesn't exist - link broken
- • /dashboard/creator/studio/[id] dynamic route doesn't exist
- • Request Payout button shows but doesn't call API
- • 8 links point to PageSpecView placeholder pages
Test Coverage
Component ✓
Page ○
SSR ○
API 1/1
✓ Ready
Script: scripts/page-tests/test-CDSH.sh
Page Test: tests/pages/dashboard/creator/index.test.tsx ○
Component Test: tests/components/dashboard/CreatorDashboard.test.tsx ✓
API Tests
| Endpoint | Test File | Status |
GET /api/me/creator-dashboard | tests/api/me/creator-dashboard.test.ts | ✓ tested |
Discrepancies (Spec vs Implementation)
As of 2026-01-08
Planned but Not Implemented
| Feature | Original Spec | Status | Priority |
| Completion rate per course | Per-course completion rate display | Not implemented | Low |
| Revenue per course | Per-course revenue display | Not implemented | Low |
| Sort courses | Sort by students/revenue/rating | Not implemented | Low |
| ST Overview section | List of STs certified for courses | Awaiting Block 7 | Medium |
| Recent Activity timeline | Timeline of enrollments, completions, certifications | Not implemented | Low |
| Analytics events | 5 events defined | 0 implemented | Low |
Implemented Differently
| Feature | Original Spec | Reality | Note |
| Request Payout | POST /api/payouts/request | UI button only, not wired to API | Acceptable for MVP |
Removed from Spec
| Feature | Reason |
| ST Approval flow link | Moved to Block 7 - not needed until ST management implemented |
| Cert Approval flow link | Moved to Block 6 - not needed until certifications implemented |
| Multi-Role state | Will be addressed in Block 9.6 - Role-Based Page Access Model |