{"id":19591895,"url":"https://github.com/catalyst/moodle-mod_scormremote","last_synced_at":"2025-04-27T14:33:30.048Z","repository":{"id":66891569,"uuid":"590224383","full_name":"catalyst/moodle-mod_scormremote","owner":"catalyst","description":"A Moodle activity for serving SCORM packages remotely to another LMS across domains","archived":false,"fork":false,"pushed_at":"2024-11-06T03:26:31.000Z","size":516,"stargazers_count":12,"open_issues_count":25,"forks_count":5,"subscribers_count":15,"default_branch":"MOODLE_39_STABLE","last_synced_at":"2025-04-05T00:41:17.479Z","etag":null,"topics":["moodle","moodle-plugin","scorm"],"latest_commit_sha":null,"homepage":"https://moodle.org/plugins/mod_scormremote","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/catalyst.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-17T23:12:36.000Z","updated_at":"2025-03-26T13:35:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"f3d93a47-3249-43b4-adbf-ee9ff060397d","html_url":"https://github.com/catalyst/moodle-mod_scormremote","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catalyst%2Fmoodle-mod_scormremote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catalyst%2Fmoodle-mod_scormremote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catalyst%2Fmoodle-mod_scormremote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catalyst%2Fmoodle-mod_scormremote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/catalyst","download_url":"https://codeload.github.com/catalyst/moodle-mod_scormremote/tar.gz/refs/heads/MOODLE_39_STABLE","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251154590,"owners_count":21544526,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["moodle","moodle-plugin","scorm"],"created_at":"2024-11-11T08:31:36.405Z","updated_at":"2025-04-27T14:33:28.193Z","avatar_url":"https://github.com/catalyst.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca  href=\"https://github.com/catalyst/moodle-mod_scormremote/actions/workflows/ci.yml?query=branch%3AMOODLE_39_STABLE\"\u003e\n\u003cimg src=\"https://github.com/catalyst/moodle-mod_scormremote/workflows/ci/badge.svg?branch=MOODLE_39_STABLE\"\u003e\n\u003c/a\u003e\n\n# Moodle Mod Scormremote\n\n* [What is this?](#what-is-this)\n* [How does it work?](#how-does-it-work)\n* [Branches](#branches)\n* [Installation](#installation)\n* [Configuration](#configuration)\n* [Support](#support)\n* [Credits](#credits)\n\n## What is this?\n\nThis is a new Moodle activity module completely independant from mod_scorm\nwhich allows you to upload a scorm and then serve it remotely to other\nlearning management systems on other domains.\n\nIt works by generating a thin wrapper scorm which is uploaded into the\nother lms and passes events across the iframe barrier using window.postMessage\n\nThis has a few advantages as you can:\n\n1) outsource the learning similar to how LTI works reducing the\n    burden on the remote LMS's admins\n2) sell your scorm packages without giving them away\n3) add seat restriction at the domain level\n4) swap the scorm packages in place and not require the remote LMS\n   to do anything they automatically get the latest version of the package\n\n## How does it work?\n\nThis library embeds and serves the Scorm file using the Scorm again library:\n\nhttps://github.com/jcputney/scorm-again\n\nThe wrapper file which is running on the remote site loads the real scorm file\ninside a sandboxed iframe and then creates a Scorm API communication bridge \nbetween the two sites using window.postMessage:\n\nhttps://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage\n\n\n## Branches\n\n| Moodle version    | Branch             |\n| ----------------- | ------------------ |\n| Moodle 3.9+       | `MOODLE_39_STABLE` |\n\n\n## Installation\n\n1. You can use git to clone it into your source:\n\n```sh\ngit clone git@github.com:catalyst/moodle-mod_scormremote.git mod/scormremote\n```\n\n2. Then run the Moodle upgrade\n\n## Configuration\n\n### General config\n\nTo allow iframes to load on the remote site this admin setting needs to be set:\n\n```\nallowframembedding = 1\n```\n\n### Making a tier\n\n/mod/scormremote/tiers.php\n\nA tier is a level of a subsription which you can use to limit the number of seats\nthat a client can use. eg you could make a tier called 'Basic plan' and allocate\na maximum of 50 seats to that tier.\n\n### Making a client\n\n/mod/scormremote/clients.php\n\nA client is the remote site which will be embedded your Scorm packages. The main\nthings a client needs besides a name is the list of domains related to this client.\n\n### Make a remote scorm activity\n\nThis is very similar to a normal activity, you add a new activity of type 'SCORM Remote'\nand then upload your scorm file to it. \n\n### Download the wrapper\n\nIt will then product a 'wrapper scorm' file which you can download and distribute to\nthe administrators of the remote site what wants to use the scorm packages. The scorm\nwrappers auto detects which client is using the wrapper based on the list of domains\nagainst each client, so the same wrapper can be used with different clients.\n\n### Embed the wrapper on the remote site\n\nThis wrapper scorm file can then be imported into the remote site in the same way a\nnormal scorm file would be.\n\n### Monitor usage\n\nAs learners on the remote site use the scorm, you will see accounts created in your\nMoodle and enrolments and completion status for those accounts. You can also see\nreports showing how many seats are used against the configured tiers.\n\n## Support\n\nIf you have issues please log them in\n[GitHub](https://github.com/catalyst/moodle-mod_scormremote/issues).\n\nPlease note our time is limited, so if you need urgent support or want to\nsponsor a new feature then please contact\n[Catalyst IT Australia](https://www.catalyst-au.net/contact-us).\n\n## Credits\n\nThis development of this plugin was sponsored by [Early Childhood Australia](http://www.earlychildhoodaustralia.org.au/).\n\nhttp://www.earlychildhoodaustralia.org.au/\n\n[\u003cimg src=\"https://user-images.githubusercontent.com/187449/213033404-75ea1cca-eb44-48b0-acad-7d39a4dcc0bf.png\"\u003e](http://www.earlychildhoodaustralia.org.au/)\n\nThis plugin uses the excellent SCORM Again library:\n\nhttps://github.com/jcputney/scorm-again\n\nThis plugin was developed by [Catalyst IT Australia](https://www.catalyst-au.net/).\n\n\u003cimg alt=\"Catalyst IT\" src=\"https://cdn.rawgit.com/CatalystIT-AU/moodle-auth_saml2/MOODLE_39_STABLE/pix/catalyst-logo.svg\" width=\"400\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatalyst%2Fmoodle-mod_scormremote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcatalyst%2Fmoodle-mod_scormremote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatalyst%2Fmoodle-mod_scormremote/lists"}