1. Generate the package
2. Download the zip
3. Upload to your customer’s LMS
Each LMS has its own upload UI. The shape is always:- Moodle: Course → Add an activity → SCORM → Upload zip
- Canvas: Course → Settings → Apps → SCORM → Add package
- Cornerstone: Catalog → Add learning object → SCORM → Upload
cmi.completion_status,
cmi.score.scaled, cmi.session_time.
What the package contains
runtime.js makes signed calls to your Hawkings backend. Students
don’t need their own Hawkings login — the LMS’ SCORM session is
authenticated as a runtime token under the hood.
Per-student progress lands back in Hawkings
When a student opens the SCORM package, completes activities, and submits an assignment, those events flow throughruntime.js to:
Submissions, identical in shape to
those produced by the native Hawkings student app. The SDK’s
submissions.list({ assignment_id }) reads them transparently.
Re-issuing a package
Cohorts evolve. To re-publish:id. Old packages keep working — they continue to
report into the same cohort. Issue a new zip when there’s structural
change (lessons added/removed); for content edits the existing zip
fetches the latest from Hawkings on each load.
Self-hosted runtime
If you don’t want the runtime to callapi.hawkings.education, point
the package at your self-hosted instance:
Limitations
- The package needs network to load lessons. Offline mode is on the roadmap — talk to us if you need it sooner.
- AI tutor chat works inside the SCORM iframe with the same token flow as the native app.
- Some LMSs cap zip size at 100MB; if your course exceeds that, lessons with heavy media are streamed instead of bundled.