Feature Owner : Joylynne Esportuno
Module : Review Workflow
Priority : P4
Sprint #9: Fully Implemented
Date : July 2, 2026
EXECUTIVE SUMMARY
What is this feature ?
Multi-SCO Export packages an adventure as a SCORM zip with each quest represented as its own SCO.
Why does it matter ?
LMS administrators need one importable package that preserves quest-level tracking.
What's the MVP scope ?
Generate SCORM 1.2/2004 zip with manifest and per-quest launch files. Offline content bundling is out of scope.
1. USER PAIN POINT & SOLUTION
Without Multi-SCO Export
Creators may need to export quests one by one for LMS delivery.
Pain Point
Emotional : LMS packaging feels tedious.
Functional : Manual imports are slow and error-prone.
Business Impact : Enterprise delivery friction.
Current State (Already Implemented)
Creator exports one adventure package with multiple SCOs.
Marketing Hook
"Export an entire adventure to LMS as trackable quest SCOs."
2. 4D FRAMEWORK MAPPING
Diagnose
Identifies ordered adventure quest structure.
Design
Maps adventure sequence to SCORM organization.
Develop
Generates manifest, launch pages, and runtime scripts.
Deliver
Creates downloadable LMS package.
3. USER FLOWS
Entry Point
Adventure edit page Multi-SCO Export dialog.
Success Criteria
Creator downloads a valid .zip with one SCO per quest.
Main Flow
Creator opens export dialog.
Selects SCORM version/mastery score.
API verifies ownership.
API fetches ordered adventure quests.
Zip is generated and downloaded.
Edge Cases
No quests : Block export with message
API error : Show export failure
Permission denied : Block non-owner
Decision Points
IF SCORM 1.2 selected, generate 1.2 manifest/runtime
ELSE generate SCORM 2004 variant
4. INFORMATION ARCHITECTURE
Primary Information
Adventure title
Quest list/order
SCORM version
Secondary Information
Mastery score
Export file name
Tertiary Information
Manifest/resource IDs
Actions
Primary CTA : Export
Secondary Actions : Cancel, choose version
5. WIREFRAMES
Exluded — Feature fully implemented.
6. WIREFLOWS
Exluded — Feature fully implemented.
7. PROTOTYPE
Exluded — Feature fully implemented.
8. BACKEND SCHEMA
Database Tables
adventuresadventure_sequencesquests
Constraints
Exporting user must own the adventure
Adventure must contain at least one quest
SCORM version and mastery score must be valid
Manifest values must be XML-escaped
9. API ENDPOINTS
Endpoint 1: POST /api/creator/export/multi-sco
Purpose: Generates a Multi-SCO SCORM zip for an adventure.
Auth: Adventure owner required.
Request Body: Adventure ID, SCORM version, mastery score.
Response Data: Zip file download response.
10. DATA REQUIREMENTS
Frontend Needs
Adventure ID and title
Selected SCORM version: 1.2 or 2004
Mastery score
Export loading, success, and error state
Download filename/response handling
Backend Needs
Authenticated creator ID
Adventure ownership record
Ordered
adventure_sequencesrowsQuest IDs and titles for manifest/SCO resources
SCORM version-specific manifest/runtime template data
API Calls Frontend Will Make
Submit export request from the adventure page/dialog
Browser receives and downloads zip response
Caching Strategy
Do not cache zip responses. Adventure sequence data should be fetched fresh for export so the package reflects current quest order.
11. PERFORMANCE CONSIDERATIONS
Database Optimization
Fetch adventure ownership and ordered sequence/quest data with minimal queries. Do not load full quest content unless needed for manifest generation.
Package Generation
Zip generation should stay within server memory/time limits. Large adventures should be tested for timeout and response size behavior.
Caching Strategy
Generated packages should not be cached by default because export settings and adventure order can change.
API Response Time
Small-to-medium adventures should export within a few seconds. The UI must show a loading state and prevent duplicate export clicks.
12. SECURITY & AUTHORIZATION
Who Can Access This Feature?
Adventure Creator/Owner: Can export owned adventure.
Admin: Only if platform policy allows owner-level export.
Learner/Reviewer: No export access.
Authorization Logic
The export API must verify the authenticated user owns the adventure before reading sequence data or generating a package.
13. ERROR HANDLING
401 Unauthorized: Prompt creator to sign in again. Do not start export.
403 Forbidden: Return access denied if the authenticated user does not own the adventure.
404 Adventure Not Found: Show an export error that the adventure no longer exists or cannot be accessed.
500 Package Generation Failure: Show export failed and allow retry. Log manifest/zip generation details server-side.
14. TESTING CHECKLIST
Happy Path
Export SCORM 1.2 zip
Export SCORM 2004 zip
Manifest includes all quests in order
Each quest launches as a separate SCO
LMS import smoke test passes
Edge Cases
Unauthorized export blocked
Adventure with no quests is blocked
Invalid mastery score shows field error
Package generation failure does not download corrupt zip
15. OPEN QUESTIONS
For Frontend:
Should the export dialog show estimated package size before export?
Should the UI display LMS compatibility guidance per SCORM version?
For Backend:
Should package include offline assets?
Should SCO prerequisites/sequencing be supported?
16. OUT OF SCOPE
Offline playback
xAPI package export
17. SUCCESS METRICS
Export success rate
LMS import success rate
Enterprise adoption
18. DEPENDENCIES
This feature depends on:
Adventure sequences
Quest Player SCORM route
Export templates
Hosted public SCORM quest fetch
These features depend on this:
LMS delivery workflows
Enterprise content export
SCORM-based learner completion reporting
19. TIMELINE & OWNERSHIP
Backend: Joylynne Esportuno
Frontend: Joylynne Esportuno
QA:
Estimated Completion: Feature fully implemented