/Scorm

Attach Scorm packages to courses

Primary LanguagePHPMIT LicenseMIT

Scorm

swagger codecov phpunit downloads downloads downloads

What does it do

This package is used to store and manage SCORM packages.

Installing

  • composer require escolalms/scorm
  • php artisan migrate
  • php artisan db:seed --class="EscolaLms\Scorm\Database\Seeders\DatabseSeeder"
  • php artisan db:seed --class="EscolaLms\Scorm\Database\Seeders\PermissionTableSeeder"

Database

  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

Tutorial

  1. Get the Scorm package from EscolaLms\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.

Endpoints

  • /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

Tests

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

Test details codecov phpunit

How to use this on frontend.

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>

Admin panel

List of Scorm packages List of Scorm packages

Scorm player Scorm player

Permissions

Permissions are defined in seeder.

Todo.

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