Getting SCORM content into Open edX with the SCORM XBlock
While many of the popular courseware management systems offer native SCORM support, Open edX has not been one of them.
The Back Story
One of our customers, the New York Institute of Finance, has an extensive eLearning catalog that they’d like to bring into Open edX, but that content is in SCORM.
Based on our early experiments from a year ago using SCORM Cloud in combination with Open edX’s LTI support, I proposed an XBlock using SCORM Cloud to host the SCORM assets.
But ultimately, this approach was rejected in favor of a SCORM XBlock for the following reasons:
- Lower cost because you don’t have to pay SCORM Cloud for each user
- One less system to have to integrate with
- Better user experience for both the course author and the student
So a few months ago, we embarked on a project to build a SCORM XBlock that will allow them to upload these SCORM files directly into Open edX, and thus avoid the cost and complexity of using SCORM Cloud.
We originally considered xb_scorm that was started by Brad Smith, but it didn’t work out-of-the-box, didn’t save LMS data, and had other issues.
We wanted to make it more universal and configurable and we were just about to start extending this, but decided that first we would share our plan with the community.
Discovering a gem in the community
We posted to the edx-code mailing list about these efforts, and not long after, we got a response about another effort by Raccoon Gang to build a SCORM XBlock. We took a look at this code, and it seemed to be in better shape, and something we felt more confident to build on top of. Gotta love the community!
But there was a problem – the XBlock did not include a SCORM player.
We had originally intended to build a SCORM player from scratch and make it open source, but the closer we looked at the level of effort to do this, the more nervous we got about being able to deliver it in time. As is often the case, the customer deadline was rapidly approaching, and we needed to be able to deliver something soon.
So we started hunting for an existing SCORM player which we could integrate with the SCORM XBlock from Raccoon Gang.
Many SCORM packages are made by publishers that already implement player functionality within the package, but we wanted to use a single player that could handle packages from every (we hope!) publisher.
Another discovery – a commercial solution
After much sleuthing, we found a SCORM player made by JCA Solutions : Simple SCORM Learning Management System Adapter, or “SSLA” for short.
With help from George at JCA solutions and many man hours of work from our developer Bryan Wilson, we successfully integrated SSLA into the XBlock!
The XBlock allows the course author to specify a player as configured via environment variables, or to use the “internal player” (the player internal to the SCORM package).
Below are a few screenshots to give you a flavor for how it works.
When the student encounters a SCORM package in the course, they’re presented with a page where they can click on the module to launch that unit.
Course authors can add a new SCORM by selecting Advanced from the Add New Component section.
And then selecting “Scorm”
You can then click the edit link, and upload the SCORM file. You can select whether you want the SCORM to appear inline or in a popup window.
As mentioned above, you can also choose whether to use the SSLA player or the internal player that came with the package.
The course author can also specify the dimensions of the window, to make sure that the SCORM package is displayed properly.
Here’s a breakdown of the functionality when adding the SCORM file to Open edX within Studio.
SSLA is a commercial product and has a license fee, which we’ve paid in order to deliver the solution to our customer. While the XBlock itself can be open source, the player that actually plays the SCORM packages cannot be distributed with the XBlock code, and must be purchased separately.
We plan to buy a blanket license that will cover all of the customers who host on our Open edX hosting platform, so that they don’t need to go buy individual licenses.
If you have SCORM content and want to use it with Open edX, please contact us to learn more about our hosting service that will soon have these SCORM capabilities.
How to get involved
We are still testing and the code is not ready for public use yet, but if you want to follow along, the XBlock repo is on Github: https://github.com/appsembler/edx_xblock_scorm/
We plan on making a demo site available where you can test your own SCORM packages and give us feedback on what’s working and what’s not, so that we can identify any potential issues.
We know the XBlock and SSLA player work with our customer’s content, but we haven’t done exhaustive testing to ensure that it will work with all packages. There’s where you come in! We’re depending on the community to step up and give us feedback so that we can make it better.
If you’d like to be notified when the SCORM XBlock is publicly available for testing, please contact us.
Also, if you want to participate in discussions about the future of SCORM in Open edX:
- Join the SCORM in Open edX mailing list
- Subscribe to the SCORM in Open edX wiki page
- Attend my Getting your SCORM Content into Open edX lightning talk at the upcoming Open edX conference at Stanford!
Thanks to the New York Institute of Finance for sponsoring this important work and supporting our efforts to make SCORM content native in Open edX!