329 lines
5.9 KiB
Markdown
329 lines
5.9 KiB
Markdown
# 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
|
|
```prisma
|
|
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](PHASE_9_SCALE.md)
|