Giter Site home page Giter Site logo

catalyst / moodle-mod_scormremote Goto Github PK

View Code? Open in Web Editor NEW
9.0 16.0 3.0 513 KB

A Moodle activity for serving SCORM packages remotely to another LMS across domains

Home Page: https://moodle.org/plugins/mod_scormremote

License: Other

JavaScript 57.60% PHP 40.03% Mustache 2.36%
moodle moodle-plugin scorm

moodle-mod_scormremote's Introduction

Moodle Mod Scormremote

What is this?

This is a new Moodle activity module completely independant from mod_scorm which allows you to upload a scorm and then serve it remotely to other learning management systems on other domains.

It works by generating a thin wrapper scorm which is uploaded into the other lms and passes events across the iframe barrier using window.postMessage

This has a few advantages as you can:

  1. outsource the learning similar to how LTI works reducing the burden on the remote LMS's admins
  2. sell your scorm packages without giving them away
  3. add seat restriction at the domain level
  4. swap the scorm packages in place and not require the remote LMS to do anything they automatically get the latest version of the package

How does it work?

This library embeds and serves the Scorm file using the Scorm again library:

https://github.com/jcputney/scorm-again

The wrapper file which is running on the remote site loads the real scorm file inside a sandboxed iframe and then creates a Scorm API communication bridge between the two sites using window.postMessage:

https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

Branches

Moodle version Branch
Moodle 3.9+ MOODLE_39_STABLE

Installation

  1. You can use git to clone it into your source:
git clone [email protected]:catalyst/moodle-mod_scormremote.git mod/scormremote
  1. Then run the Moodle upgrade

Configuration

General config

To allow iframes to load on the remote site this admin setting needs to be set:

allowframembedding = 1

Making a tier

/mod/scormremote/tiers.php

A tier is a level of a subsription which you can use to limit the number of seats that a client can use. eg you could make a tier called 'Basic plan' and allocate a maximum of 50 seats to that tier.

Making a client

/mod/scormremote/clients.php

A client is the remote site which will be embedded your Scorm packages. The main things a client needs besides a name is the list of domains related to this client.

Make a remote scorm activity

This is very similar to a normal activity, you add a new activity of type 'SCORM Remote' and then upload your scorm file to it.

Download the wrapper

It will then product a 'wrapper scorm' file which you can download and distribute to the administrators of the remote site what wants to use the scorm packages. The scorm wrappers auto detects which client is using the wrapper based on the list of domains against each client, so the same wrapper can be used with different clients.

Embed the wrapper on the remote site

This wrapper scorm file can then be imported into the remote site in the same way a normal scorm file would be.

Monitor usage

As learners on the remote site use the scorm, you will see accounts created in your Moodle and enrolments and completion status for those accounts. You can also see reports showing how many seats are used against the configured tiers.

Support

If you have issues please log them in GitHub.

Please note our time is limited, so if you need urgent support or want to sponsor a new feature then please contact Catalyst IT Australia.

Credits

This development of this plugin was sponsored by Early Childhood Australia.

http://www.earlychildhoodaustralia.org.au/

This plugin uses the excellent SCORM Again library:

https://github.com/jcputney/scorm-again

This plugin was developed by Catalyst IT Australia.

Catalyst IT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.