Skip to content

Package: scorm

Generated from api/packages/scorm

Source: api/packages/scorm · imported version 0.3.1. The sections after the README are extracted from the code on every docs build.

This package is used to store and manage SCORM packages.

  • composer require ulams/scorm
  • php artisan migrate
  • php artisan db:seed --class="Ulams\Scorm\Database\Seeders\DatabseSeeder"
  • php artisan db:seed --class="Ulams\Scorm\Database\Seeders\PermissionTableSeeder"
  1. scorm - Scorm package main data.
  2. scorm_sco - Educational content data associated with the Scorm package.
  3. scorm_sco_tracking - Stores the user’s progress.
Scorm 1 -> n ScormScos
Scorm 1 -> n ScormScoTracking
  1. Get the Scorm package from Ulams\Scorm or Sample SCORM packages.
  2. Upload Scorm package in Zip format /api/admin/scorm/upload.
  3. Start the player by specifying uuid Scorm SCO /api/scorm/play/{uuid}.
  4. The package supports tracking user progress, to achieve this, you need to send an authorization token in the header.
  • /api/admin/scorm/upload - Upload ZIP Scorm Package into app local storage.
  • /api/scorm/play/{uuid} - SCORM SCO player.

All the endpoints are defined in swagger swagger

Run ./vendor/bin/phpunit to run tests. See tests folder as it’s quite good staring point as documentation appendix.

Test details

Endpoint /api/scorm/play/{uuid} returns the html file with the <iframe>.

<html lang="en">
...
<iframe src="api/storage/{scorm-version}/{uuid}/index.html"></iframe>
...
</html>

List of Scorm packages List of Scorm packages

Scorm player Scorm player

Permissions are defined in seeder.

The package does not support all available scorm formats #1 #2

Method Path Auth Action
POST /api/admin/scorm/upload yes ScormController@upload
POST /api/admin/scorm/parse yes ScormController@parse
DELETE /api/admin/scorm/{scormModel} yes ScormController@delete
GET /api/admin/scorm yes ScormController@index
GET /api/admin/scorm/scos yes ScormController@getScos
GET /api/scorm/assets/scorm-again.min.js ScormContentController@scormAgain
POST /api/scorm/launch/{uuid} yes ScormContentController@launch
GET /api/scorm/content/{uuid} ScormContentController@show
POST /api/scorm/content/{uuid}/track ScormContentController@track
GET /api/scorm/play/{uuid} ScormController@showView
GET /api/scorm/service-worker ScormController@showViewServiceWorker
GET /api/scorm/show/{uuid} ScormController@showJson
GET /api/scorm/zip/{uuid} ScormController@createOrGetZip
POST /api/scorm/track/{uuid} yes ScormTrackController@set
GET /api/scorm/track/{scoId}/{key} yes ScormTrackController@get
GET / ScormFileController@show
Permission Seeded for roles Constant
scorm_list admin ScormPermissionsEnum::SCORM_LIST
scorm_read admin ScormPermissionsEnum::SCORM_READ
scorm_create admin, tutor ScormPermissionsEnum::SCORM_CREATE
scorm_delete admin ScormPermissionsEnum::SCORM_DELETE
scorm_update admin, tutor ScormPermissionsEnum::SCORM_UPDATE
scorm_track-read admin, student, tutor ScormPermissionsEnum::SCORM_GET_TRACK
scorm_track-update admin, student, tutor ScormPermissionsEnum::SCORM_SET_TRACK
scorm_list-own tutor ScormPermissionsEnum::SCORM_LIST_OWN
scorm_read-own tutor ScormPermissionsEnum::SCORM_READ_OWN
scorm_delete-own tutor ScormPermissionsEnum::SCORM_DELETE_OWN

Registered with AdministrableConfig::registerConfig (editable in the admin panel under Configuration → Settings).

None.

Event Description Notification templates
ScormScoCompleted A learner’s tracking of a SCO reached completed or passed for the first time.
Command Description Signature
scorm:copy-serviceworker Copy serviceworker.js to s3 bucket scorm:copy-serviceworker
ulams:scorm:publish-player Write the content-origin SCORM player (player.html, player.js, scorm-again) to scorm/_player on the SCORM disk ulams:scorm:publish-player

None.

None.