A standalone web-based debugger for testing and debugging SCORM 1.2 packages without needing an LMS.
This tool allows you to load SCORM 1.2 packages (ZIP files) directly in your browser and debug the communication between the SCO (Shareable Content Object) and the LMS API. It simulates a complete SCORM 1.2 Run-Time Environment, making it easy to test and troubleshoot SCORM content during development.
┌─────────────────────────────────────────────────────────────┐
│ SCORM Debugger │
├─────────────────────────────────┬───────────────────────────┤
│ │ │
│ SCORM Content (iframe) │ Debugger Panel │
│ │ │
│ ┌─────────────────────────┐ │ - Stored data table │
│ │ │ │ - Common operations │
│ │ Your SCO runs here │───│ - API element inspector │
│ │ │ │ - Interactions creator │
│ └─────────────────────────┘ │ - Objectives manager │
│ │ - Real-time log │
│ │ │
└─────────────────────────────────┴───────────────────────────┘
│
▼
┌──────────────────┐
│ Simulated LMS │
│ SCORM 1.2 API │
└──────────────────┘
- Load: Drag & drop or select a SCORM ZIP package
- Parse: The tool extracts the package and reads
imsmanifest.xml - Select: Choose which SCO to launch from the dropdown
- Debug: Watch API calls in real-time, modify values, test interactions
- Load a package: Drag a SCORM ZIP file onto the dropzone, or click to browse
- Select a SCO: Use the dropdown in the toolbar to choose which SCO to launch
- Launch: Click the "Launch" button to start the SCO
- Debug: Use the tabs on the right panel:
- Stored data: View all SCORM data elements and their values
- Common operations: Quick buttons to set lesson status, score, etc.
- Debugger: Get/set any SCORM element manually
- Interactions: Create test interactions and objectives
- Tests: Run automated API tests
- Standalone operation: No LMS required, works entirely in the browser
- Drag & drop loading: Simply drop your SCORM ZIP file to load it
- Side-by-side view: See your content and debug data simultaneously
- Real-time monitoring: Watch API calls as they happen
- Full SCORM 1.2 API: Complete implementation of all 8 API functions
- Data manipulation: Modify any SCORM element on the fly
- Multi-page support: Navigation between HTML pages within the package
- Resizable panels: Adjust the layout to your preference
The debugger implements the complete SCORM 1.2 API:
| Function | Description |
|---|---|
LMSInitialize("") |
Initialize communication |
LMSFinish("") |
Terminate communication |
LMSGetValue(element) |
Retrieve a data element |
LMSSetValue(element, value) |
Store a data element |
LMSCommit("") |
Persist data |
LMSGetLastError() |
Get last error code |
LMSGetErrorString(code) |
Get error description |
LMSGetDiagnostic(code) |
Get diagnostic info |
This project is a fork of jleyva/scorm-debugger with significant enhancements:
-
Standalone mode: The original was designed to run inside an LMS as a SCO itself. This version runs independently and can load any SCORM package.
-
ZIP loading: Added ability to load SCORM packages directly from ZIP files using JSZip.
-
Modern UI: New side-by-side layout with resizable panels, drag & drop interface, and improved toolbar.
-
Simulated LMS API: Complete SCORM 1.2 API simulation with proper error handling and data validation.
-
Real-time updates: The debugger panel updates automatically when the SCO modifies data.
-
Multi-page navigation: Support for SCORM packages with multiple HTML pages and internal navigation.
-
Manifest parsing: Automatic detection of SCOs from
imsmanifest.xml.
MIT License - See the original project for full license details.
Issues and pull requests are welcome at github.com/erseco/scorm-debugger.