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