5.9 KiB
5.9 KiB
Phase 8: Enterprise & Education - Implementation Guide
Duration: Weeks 34-37 | Complexity: High | Team Size: 2-3 devs
Executive Summary
Phase 8 unlocks webinar, education, and enterprise use cases with specialized tools for professionals: webinar hosting, course creation, organization management, Q&A, and certification.
Phase 8 Goals
- Webinar hosting with screen sharing
- Course creation and scheduling
- Organization/team management
- Q&A moderation system
- Certificate/badge issuance
- Attendance tracking
Key Features
1. Webinar Features (35%)
Setup:
- HD video (720p+ guaranteed)
- Screen sharing (creator only)
- Slide deck integration (PDF)
- Multiple camera angles
Engagement:
- Q&A panel (moderated)
- Live polls
- Chat (professional moderation)
- Breakout rooms (optional)
Post-webinar:
- VOD access control
- Attendee list
- Recording download
- Certification link
2. Course Creation (30%)
Course Structure:
- Modules (units)
- Lessons (individual sessions)
- Assignments (quizzes, tasks)
- Certificates (upon completion)
Features:
- Scheduled lessons
- Lesson calendars
- Progress tracking
- Prerequisites
- Completion requirements
Database:
- Course
- Module
- Lesson
- Assignment
- CourseEnrollment
3. Organization Mgmt (20%)
Features:
- Multi-streamer accounts
- Team role management
- Shared analytics dashboard
- Unified billing
- Branded sub-domains
Roles:
- Org admin
- Course author
- Instructor
- Teaching assistant
- Viewer
4. Certificates (10%)
Features:
- Template design
- Auto-generation on completion
- Digital badge
- Downloadable PDF
- Blockchain verification (optional)
Example:
- "John Doe completed React Advanced Course"
- Issue date, signature, QR code
- Verifiable at platform
Implementation
Database
model Organization {
id String @id
name String
description String?
logo String?
subdomain String @unique // org-name.aethex.live
creatorId String
creator User @relation(fields: [creatorId])
members OrganizationMember[]
courses Course[]
webinars Webinar[]
billingEmail String?
createdAt DateTime
}
model Course {
id String @id
organizationId String
organization Organization @relation(fields: [organizationId])
title String
description String
cover String?
modules Module[]
enrollments CourseEnrollment[]
price Int? // Optional, free if null
prerequisite String? // Required course ID
createdAt DateTime
}
model Module {
id String @id
courseId String
course Course @relation(fields: [courseId])
title String
order Int
lessons Lesson[]
}
model Lesson {
id String @id
moduleId String
module Module @relation(fields: [moduleId])
title String
description String
vodId String // From Phase 3 VOD system
duration Int // Minutes
assignments Assignment[]
createdAt DateTime
}
model CourseEnrollment {
id String @id
courseId String
course Course @relation(fields: [courseId])
userId String
user User @relation(fields: [userId])
enrolledAt DateTime
completedAt DateTime?
progress Int // Percentage
@@unique([courseId, userId])
}
model Webinar {
id String @id
organizationId String
organization Organization @relation(fields: [organizationId])
title String
description String
scheduledStart DateTime
duration Int // Minutes
registrations WebinarRegistration[]
qnas QA[]
attendees WebinarAttendee[]
vodId String? // Recorded VOD after
certificateTemplate String?
}
model WebinarAttendee {
id String @id
webinarId String
webinar Webinar @relation(fields: [webinarId])
userId String
user User @relation(fields: [userId])
registeredAt DateTime
attendedAt DateTime?
duration Int? // Minutes attended
receivedCertificate Boolean @default(false)
}
model Certificate {
id String @id
userId String
user User @relation(fields: [userId])
courseId String? // Optional, for courses
webinarId String? // Optional, for webinars
title String // "React Advanced Course Completion"
issuedAt DateTime
expiresAt DateTime? // Optional expiration
verificationHash String @unique
}
model QA {
id String @id
webinarId String
question String
askedBy String
timestamp Int // Seconds into webinar
answer String?
answeredBy String?
votes Int @default(0) // Upvotes
status String // PENDING, ANSWERED, HIDDEN
}
Key APIs
Courses:
- POST /api/courses (create)
- GET /api/courses (list)
- POST /api/courses/:id/enroll
- GET /api/courses/:id/progress
Webinars:
- POST /api/webinars (create)
- POST /api/webinars/:id/register
- GET /api/webinars/:id/attendees
- POST /api/webinars/:id/qa
Certificates:
- GET /api/certificates/:userId
- POST /api/certificates/:id/verify
- GET /api/certificates/:id/download
Organizations:
- POST /api/organizations
- PUT /api/organizations/:id
- POST /api/organizations/:id/members
Special Features
Screen Sharing
Tech: WebRTC or Cloudflare Stream
- Creator shares screen
- Mixed with camera in HLS stream
- Shared to 10k+ viewers
- Recorded in VOD
Q&A Moderation
Flow:
1. Attendee types question
2. Goes to moderation queue
3. Moderator approves/rejects
4. Approved q shown to presenter
5. Presenter answers live
6. Answer recorded
Progress Tracking
For learners:
- % of course complete
- Watched which lessons
- Completed which assignments
- Overall progress bar
Success Metrics
- 100+ organizations
- 500+ webinars hosted
- 10k+ course enrollments
- 5k+ certificates issued
- $100k+ enterprise revenue
Timeline
| Week | Focus |
|---|---|
| 34 | Course structure, platform |
| 35 | Webinar features, Q&A |
| 36 | Certificates, progress tracking |
| 37 | Organizations, testing, deployment |
Completion: Week 37 (by September 12, 2025)
Next: Phase 9 - Scale & Polish
See PHASE_9_SCALE.md