All Projects → adlnet → SCORM-to-xAPI-Wrapper

adlnet / SCORM-to-xAPI-Wrapper

Licence: other
APIWrapper.js file commonly used with SCORM with xAPI calls embedded

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to SCORM-to-xAPI-Wrapper

scormcloud-api-wrapper
Node.js client for the SCORM Cloud API.
Stars: ✭ 15 (-81.71%)
Mutual labels:  xapi, scorm
xapi-profiles
A set of documents addressing the structure of and supporting services for xAPI Profiles.
Stars: ✭ 47 (-42.68%)
Mutual labels:  xapi
TinCan.NET
C#/.NET library for Tin Can API
Stars: ✭ 42 (-48.78%)
Mutual labels:  xapi
TinCanPython
Python Library for xAPI (originally Tin Can API)
Stars: ✭ 38 (-53.66%)
Mutual labels:  xapi
lrsql
A SQL-based Learning Record Store
Stars: ✭ 35 (-57.32%)
Mutual labels:  xapi
xapi-node
xStation5 Trading API for NodeJS/JS
Stars: ✭ 36 (-56.1%)
Mutual labels:  xapi
xAPI-Workshop
Workshop presentation and tools for a basic statement generator and reporting app
Stars: ✭ 18 (-78.05%)
Mutual labels:  xapi
xapicohort.github.io
The xAPI Learning Cohort is a free, vendor-neutral, 12-week learning-by-doing project-based team learning experience about the Experience API.
Stars: ✭ 20 (-75.61%)
Mutual labels:  xapi
scorm-api-adapter
Simple SCORM API Adapter.
Stars: ✭ 19 (-76.83%)
Mutual labels:  scorm
xapi-authored-profiles
Repository of official xAPI Profiles
Stars: ✭ 35 (-57.32%)
Mutual labels:  xapi
lrs-conformance-test-suite
A NodeJS project that tests the MUST requirements of the xAPI Spec and is based on the ADL testing requirements repository. The test suite website can be found here: https://lrstest.adlnet.gov/. The adopters website can be found here: https://adopters.adlnet.gov/
Stars: ✭ 52 (-36.59%)
Mutual labels:  xapi
scorm-h5p-wrapper
A NodeJS application that packs H5P content into SCORM objects
Stars: ✭ 43 (-47.56%)
Mutual labels:  scorm
xapi
XDEV Application Framework
Stars: ✭ 12 (-85.37%)
Mutual labels:  xapi
react-scorm-provider
Components to easily enable SCORM API communication in React projects.
Stars: ✭ 38 (-53.66%)
Mutual labels:  scorm
scorm
SCORM 1.2/2004 Wrapper for JavaScript/TypeScript
Stars: ✭ 32 (-60.98%)
Mutual labels:  scorm

SCORM-to-xAPI-Wrapper

This project contains a modified SCORM Version 1.2 APIWrapper.js file, a modified SCORM 2004 APIWrapper.js file and a new SCORMToXAPIFunctions.js file that handles automated conversion of SCORM Data Model elements to associated xAPI statements. This wrapper implements the SCORM Data Model conversion as defined in the Experience API SCORM Profile. This document is in draft form. Changes will be made to this wrapper to coincide with changes to the xAPI SCORM Profile.

For detailed technical information on xAPI, read the Experience API Spec

Note that using these wrappers WILL result in xAPI statements about your learners in an LRS. ENSURE THAT YOU UNDERSTAND YOUR LRSs PRIVACY AND SECURITY FEATURES BEFORE IMPLEMENTING THIS APPROACH.

SCORM2004/APIWrapper.js

Javascript SCORM 2004 API wrapper with new xAPI object (Implemented in SCORMToXAPIFunctions.js).
This javascript file is typically used in SCORM 2004 courses. If the ADL-provided ADLWrapper.js file is used in your SCORM courses, it can be replaced with this file.

Note: The updated APIWrapper.js file does not stand-alone and MUST be used with the SCORMToXAPIFunctions.js file.

SCORM1.2/APIWrapper.js

NOTE - THIS VERSION IS CURRENTLY OUT OF DATE. PLEASE SEE THE 2004 WRAPPER UNTIL THIS ISSUE IS ADDRESSED.

Javascript SCORM 1.2 API wrapper with new xAPI object (Implemented in SCORMToXAPIFunctions.js).
This javascript file is typically used in SCORM 1.2 courses. If the ADL-provided ADLWrapper.js file is used in your SCORM courses, it can be replaced with this file.

Note: The updated APIWrapper.js file does not stand-alone and MUST be used with the SCORMToXAPIFunctions.js file.

SCORMToXAPIFunctions.js

JavaScript file that implements an "xapi" object that abstracts implementation details of the xAPI SCORM Profile. This object is integrated into the APIWrapper.js file in order to automatically convert SCORM Run-Time communication to associated xAPI statements.

This version of the wrapper supports SCORM 2004 and SCORM 1.2.

Dependencies

The SCORM-to-xAPI-Wrapper relies on external dependencies to perform some actions. Make sure you download the minified xAPI Wrapper to be included in your legacy SCORM courses. Information on integration of this file is included in the Configuration section below.

Configuration

To update your SCORM 2004 courses to additionally track xAPI statements replace the appropriate APIWrapper.js file (1.2 or 2004 version depending on your SCORM version) with the SCORM-to-xAPI-Wrapper and include two new files:

  • the standard xapiwrapper.min.js file listed in the dependency above
  • the new SCORMToXAPIFunctions.js file included in this projecct

Next, add the following code in the <head> sections of each SCO in your course. SCO launch files can be identified by looking at the imsmanifest.xml file at the root of the SCORM package. Resource elements with adlcp:scormtype set to "sco" should contain the complete list of SCOs in the course. Each SCO will be an 'activity' tracked by xAPI statements. Paste the following code before the <script> tag that references the APIWrapper.js file.

<script type="text/javascript">
  var activity = document.location.protocol + "//" + document.location.host + document.location.pathname;
</script>
<script type="text/javascript" src="../Shared/JavaScript/xapiwrapper.min.js"></script>
<script type="text/javascript" src="../Shared/JavaScript/SCORMToXAPIFunctions.js"></script>

Notes:

  • Be sure that the path in the src attribute above points to the location of the minified xapiwrapper.min.js and SCORMToXAPIFunctions.js file. This location assumes that one directory up from the SCO location, that there is a Shared/JavaScript directory with your JavaScript files.
  • Activity IDs will be automatically generated based on the URL of the SCO. This may be LMS-dependent, so it is also possible to manually configure your activity URIs by changing a line of javascript code in each SCO. This will also ensure that your activity IRIs do not change when you import a new copy of the course or include the same course in an additional LMS. To optionally configure your activity URI's make the following update:
var activity = <manually configured URI goes here>;
// ex. var activity = "http://adlnet.gov/courses/example/module1"

Finally, several configuration values must be set in the updated APIWrapper.js file (init method). Instructions are also included in the header at the top of the JavaScript file. Near the top of the file, configure the following lines of code:

 var config = {
    lrs:{
       endpoint:"https://lrs.adlnet.gov/xapi/",
       user:"<lrs user>",
       password:"<lrs password>"
    },
    courseId:"<course identifier/uri>",
    lmsHomePage:"<lms homepage>"
 };

Limitations

Currently, the SCORM to xAPI Wrapper handles a subset of SCORM Run-Time behaviors and data model elements. This list will be expanded over time. Currently, the wrapper supports:

The following data model elements or behaviors result in associated xAPI statements:

Core SCO Data

  • cmi.score.scaled
  • cmi.success_status
  • cmi.completion_status
  • cmi.exit

Interactions Data

  • cmi.interactions.n.id
  • cmi.interactions.n.type
  • cmi.interactions.n.description
  • cmi.interactions.n.learner_response

Behaviors

  • SCO Initialize
  • SCO Terminates
  • SCO Resumes
  • SCO Suspends

The following data is stored as either profile or state information

Activity Profile

Identified by:

Data:

  • completion_threshold (value of cmi.completion_threshold data)
  • launch_data (value of cmi.launch_data)
  • max_time_allowed (value of cmi.max_time_allowed)
  • scaled_passing_score (value of cmi.scaled_passing_score)
  • time_limit_action (value of cmi.time_limit_action)

Activity State

Identified by:

Data:

  • attempts (Ordered list of attempt IRIs found as context in statements)

Attempt State

Identified by:

Data:

  • location (value of cmi.location)
  • preferences (see below for preferences data type)
  • credit (value of cmi.credit)
  • mode (value of cmi.mode)
  • suspend_data (value of cmi.suspend_data)
  • total_time (value of cmi.total_time)

Preferences Data Type (see reference above)

  • language (value of cmi.learner_preference.language)
  • audio_level (value of cmi.learner_preference.audio_level)
  • delivery_speed (value of cmi.learner_preference.delivery_speed)
  • audio_captioning (value of cmi.learner_preference.audio_captioning)

It is strongly recommended that implementers read and understand the Experience API SCORM Profile. Additional data model elements and behaviors identified in this profile will be implemented in a subsequent version.

Contributing to the project

We welcome contributions to this project. Fork this repository, make changes and submit pull requests. If you're not comfortable with editing the code, please submit an issue and we'll be happy to address it.

License

Copyright ©2016 Advanced Distributed Learning

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].