Skip to content

What's SCOBot doing exactly?

Mark Statkus edited this page Feb 10, 2016 · 1 revision

Highlevel

  • Ensures proper load and unload of student session (Initialize, and Terminate)
  • API_1484_11 (SCORM 2004) or API (SCORM 1.2) lookup algorithm
  • Evaluates the very first time you enter the SCO, or subsequent times based on entry and suspend data.
  • Will fire event triggers your code can selectively listen to and handle within your own codebase.
  • Includes some general warnings about exceeding character limits which are not always enforced by the LMS.
  • Will now attempt to SetValue even in other modes. It was uncovered some Platforms (SCORM 1.2) still allowed data to be altered in modes other than 'normal'. This is mainly due to them launching the content in 'review' mode even though it was requested that the attempt 'suspend'.
  • Offers several configuration options for changing the default behavior of the SCOBot Base API, as well as the Automated SCOBot library. This allows you to adjust how the SCO will exit by default, what time standard it uses among other settings. Even the ability to not report the score until the student is finished/done.
  • Enable/Disable Debug console messages. This will aid in the effort to troubleshoot a LMS or a SCO.
  • Provide a rollup API for getting and setting Interactions and Objectives. And provide you the ability to journal interactions for historical reasons.
  • Auto format date objects from and to SCORM 2004 or 1.2 date strings for duration and timestamps.
  • Auto format correct response patterns
  • Provide a auto-scoring and progress mechanism based on objective performance which takes the overhead of making your SCO Player handle this.
  • Provide a friendly 'Happy Ending' API for auto-scoring and completing the student attempt.
  • Encoding / Decoding the Suspend Data and managing it in a JSON Object which allows for structured data.
  • Options for auto-handling max time allowed automatically if the LMS or packaging has set a time limit for the SCO.
  • Options to specify which SCORM Runtime API to connect to or allow it to failover on its own by default.

SCORM Runtime API vs Content API

Anyone new to SCORM should be aware that the Runtime API provided by the LMS will enforce the SCORM Specification. This is completely separate from what the content uses to communicate with the Runtime API. This project includes a very light weight local mimic of that runtime that IS NOT the actual Runtime API. This creates a JSON Object which includes the CMI, and ADL namespaces. Please keep in mind you cannot really use the ADL Sequence and Navigation feature locally in a single SCO. This feature typically would require a Table of Contents or other hierarchical structure for a Course, Lesson, Unit, Topic, Chapter, Module etc ... Developers have used this to store data, and write it to localStorage or route it to a endpoint. There are many options here in a non-LMS scenario, but its important to note this project does not include any further libraries for those options. It does however expose event triggers you can listen to, and handle on your own without having to edit SCOBot.

A full SCORM Runtime API for SCORM 1.2 and SCORM 2004 is provided at https://cybercussion.com. This includes a sample Lesson Viewer, and other tips parsing imsmanifest files and integrating it into your portal.