SCORM is the universal lingua franca for “I have a course; my customer has an LMS that isn’t mine.” Hawkings ships SCORM 1.2 and 2004 zips that bundle the lesson tree, the content, the activities, and a tiny runtime that talks back to Hawkings for grading.Documentation Index
Fetch the complete documentation index at: https://docs.hawkings.education/llms.txt
Use this file to discover all available pages before exploring further.
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.