2

We have some scorm 1.2 content hosted in our server and would like to integrate in our website. I didn’t find any good article that explains how to do it right way. I found lot of articles/tutorials explaining various apis and events about Scorm 1.2, Scorm 2004 and TinCan but none about integrating content in a html page.

Are there any good javascript libraries (scorm players?) that actually reads imsmanifest.xml file and render content?

Mazz
  • 1,859
  • 26
  • 38

1 Answers1

1

There are a lot of questions like this on StackOverflow. And the web in general.

Server side Recipe:

  1. Serverside script to allow the upload of a zip or FTP/SFTP, scp etc...
  2. Serverside script to Unzip a Zip file (optional)
  3. Serverside script to parse the imsmanifest.xml (one to many content objects)
  4. SQL or NOSQL DB to store data (optional)
  5. You need to control any launch data, and parameters as well as thresholds defined in the imsmanifest.xml required to launch the content.

Client Side Recipe:

  1. You probably will want a UI for login/user management and assignments
  2. Shareable Content objects commonly run within IFRAMEs, popup windows, new tabs or windows. Determine how you want to launch them.
  3. You'll need a JavaScript SCORM Runtime exposed "API" for 1.2. You'll need to read up on the CMI Object and its namespaces/rules. Don't worry, most the specification is optional.
  4. You'll need to use AJAX to submit the student attempt when they call commit. You'll want to control this with a 'sync' call in cases where the student has closed their browser, or was navigated away from your site. Else, you'll lose their data.
  5. You could get away with localStorage vs the server side storage of data depending on your goals.

General flow for your site is to wait for the student to choose an assignment. Load their CMI Object (clean/new or suspended/resumed). Then load the SCO, wait for them to make calls against your JavaScript API.

Be very careful about not round tripping your back end on get and set value requests. Use the commit to do that so your not spamming your backend.

Mark
  • 2,429
  • 20
  • 20
  • Hi @Mark, Could you please guide me on where did you upload the SCORM zip file and how did you access it? Thanks! – justAnAnotherCoder Apr 21 '21 at 11:07
  • I have failed to access scorm file from the cloud storage bucket. I don't know where to upload the uncompressed scorm package. – justAnAnotherCoder Apr 21 '21 at 11:29
  • http://content.cybercussion.com/high-level-arch.png This may assist you with the general components that make up presenting Shareable Content Objects. They are like portable web pages that must be loaded in a IFRAME, new window, popup. – Mark Apr 22 '21 at 14:05
  • Is there any way we can natively host our SCORM file into a bucket then read the imsmanifest.xml file to get the launch file? I have uploaded a decompressed SCORM file in a bucket as public so that I can access the SCORM HTML file in the iframe. Unfortunately, when iframe trying to run the HTML file I am getting some wired error message like "unable to acquire LMS API, content may not play properly". – justAnAnotherCoder Apr 23 '21 at 06:06
  • The LMS Runtime APIs would need to be exposed for the content to find. If you are running it off domain from the LMS you would need a cross-domain solution. This can be accomplished by IFRAME postMessage(). So in order for this to fully work you need the SCORM Runtime APIs (javascript) and possibly a cross domain solution. Content will only attempt to find those APIs or failover or fail completely (no data persistence). https://angular.scobot.net is a beta I setup. – Mark Apr 23 '21 at 19:24