Feature Specifications¶
Detailed descriptions of all Open Codelabs features.
Core features¶
1. Codelab management¶
Create codelab¶
- Enter title, description, author
- Auto-generate unique ID
- Auto-record creation time
- Public/private visibility
- Quiz/feedback requirement settings
- Store prep guide
Step management¶
- Markdown-based content
- Automatic step ordering
- Live preview
- Bulk save (all steps)
Import/Export¶
- Export as ZIP
- Import into other systems
- Easy versioning (Git, etc.)
AI codelab generator¶
- Standard mode: quick generation
- Pro mode: plan -> draft -> review -> apply workflow
- Diff view and per-step result inspection
2. Attendee management¶
Registration¶
- Register with name and code
- Prevent duplicate names
- Auto-issued unique ID
Progress tracking¶
- Track current step
- Real-time updates
- Monitor in dashboard
Attendee list¶
- View all attendees
- Check progress
- Display registration time
Completion and certificates¶
- Mark completion
- Verify completion certificates
3. Real-time interaction¶
Help requests¶
- Request help on a step
- Real-time admin alerts
- Status management (pending/resolved)
- Timestamped requests
Chat¶
- Global chat
- 1:1 DM
- Real-time messages
- Chat history stored
WebSocket¶
- Bi-directional real-time communication
- Auto reconnect
- Connection status
4. Content authoring¶
Markdown support¶
- Standard Markdown syntax
- Code highlighting
- Image embedding
- Tables, lists, etc.
Code blocks¶
Image upload¶
- Drag and drop
- File selection
- Auto-generated URL
- Automatic WebP conversion
Materials¶
- Register links/files
- Upload material files
5. Learning assessment and submissions¶
Quizzes¶
- Multiple choice / free response
- Submit and aggregate responses
Assignments¶
- File submission
- Manage submissions
6. Feedback system¶
Collect feedback¶
- Difficulty rating (1-5)
- Satisfaction rating (1-5)
- Free-form comments
- Anonymous submission
Feedback analysis¶
- Average difficulty
- Average satisfaction
- View all responses
- Stats visualization (future)
Admin features¶
Dashboard¶
Codelab list¶
- View all created codelabs
- Card-style UI
- Sort by creation time
- Quick access
Codelab editing¶
- Edit metadata
- Add/edit/delete steps
- Live preview
- Auto save
Prep guide generation¶
- AI-based prep guide generation
- View step-by-step results in Pro mode
Attendee monitoring¶
- Live attendee list
- Progress display
- Identify stuck attendees
- Help request alerts
Help request management¶
Request list¶
- View all requests
- Prioritize pending requests
- Show step number
- Show request time
Request handling¶
- Provide help via 1:1 DM
- Mark as resolved
- Record resolution time
Chat management¶
Announcements¶
- Broadcast to all attendees
- Emphasize important announcements
- Review chat history
1:1 support¶
- DM specific attendees
- Answer questions
- Check progress
Export/Import¶
Export¶
- Export full codelab
- Download ZIP
- Backup purpose
- Migrate to other systems
Import¶
- Upload ZIP
- Auto parse
- Create new codelab
- Auto-create steps
Audit logs¶
- Track admin/attendee events
- Filter by action or codelab
Attendee features¶
Select a codelab¶
List view¶
- Available codelab list
- Title/description/author
- Card-style UI
Register¶
- Enter name
- Enter attendee code
- Uniqueness validation
- Start immediately
Learning flow¶
Step navigation¶
- Next/previous step
- Progress indicator
- Step list sidebar
- Quick jump
View content¶
- Markdown rendering
- Code highlighting
- Images
- Responsive design
Save progress¶
- Auto-save current step
- Persist after refresh
- Sync across devices
AI questions¶
- Per-step Q&A
- History stored
Help requests¶
Create requests¶
- Click to request
- Current step auto attached
- Admin notified
Status¶
- Pending / resolved
- Estimated wait time
- DM notifications
Chat participation¶
Global chat¶
- Talk with other attendees
- Ask/answer questions
- Real-time updates
Receive DMs¶
- Messages from admin
- Per-user alerts
- History
Submit feedback¶
Post-completion¶
- Shown after last step
- Difficulty rating
- Satisfaction rating
- Comment input
System features¶
Data persistence¶
Auto-save¶
- Save changes immediately
- Transaction safety
- Data integrity
Relations¶
- Foreign key constraints
- Cascade deletes
- Referential integrity
Real-time sync¶
WebSocket¶
- Bi-directional communication
- Low latency
- Auto reconnect
Event broadcast¶
- Attendee join/leave
- Progress updates
- Chat messages
- Help requests
Security¶
Input validation¶
- Prevent SQL injection
- XSS prevention (DOMPurify)
- File upload validation
- Size limits
Auth and authorization¶
- Admin auth
- Attendee identity
- Role-based access
Constraints¶
Current limitations¶
- Single admin: only one facilitator
- SQLite: limited concurrent writes
- File storage: local filesystem only
- WebSocket: single server
Future improvements¶
- Multi-admin: multiple facilitators
- PostgreSQL: scale-up support
- S3 storage: cloud file management
- Redis: distributed WebSocket
Performance characteristics¶
Response times¶
- API: < 100ms (avg ~50ms)
- Page load: < 2s
- WebSocket latency: < 50ms
Scalability¶
- Concurrent users: 100 (stable)
- Max tested: 200
- Codelabs: unlimited
- Steps: unlimited
Resource usage¶
- Memory: ~200MB
- CPU: ~10% (idle)
- Disk: SQLite DB + images
Next steps¶
- Database schema - DB structure
- API reference - REST API
- Architecture - system design