I am part of a company that has created a Learning Management System in C# using ASP.Net, and I am researching how to integrate SCORM packages/content into this. Is there a library (preferably free) that allows me to plug existing SCORM packages into this independently developed LMS?
I've done my research, and found various conflicting sites on the issue, so I thought I would ask if anyone has any advice they could give me. I've read the other SO posts on the topic and none seem to address this issue.
The requirements:
- Must allow integration of SCORM courses into the C# LMS
- Must be compatible with HTML5/responsive content
- Must be available offline
- Must ensure that the course content is playable on mobile Android devices
I have looked into the Tin Can API, however as far as I can tell it requires the user to have a LRS, most of which are expensive and do not seem to play well with C#. This just seems to be adding costs on top of costs on top of costs, and I'm almost wondering whether it's worth coding it all myself. Can anyone help?
SCORM content is expected to be launched, by the learner, in an active web-browser session. SCORM content will play on mobile browsers, as long as the device has an active internet connection. Many mobile apps use WebView or the browser, as a way to play SCORM content on Android and iOS.
There are some limitations to consider, when playing content on a mobile device. SCORM packages will play whatever the content creator designed. If incompatible assets are encountered, Flash resources on iOS as an example, they will fail. Content formatted for a PC may have odd-looking behavior. It is the burden of the content creator to provide materials that will play nicely on mobile devices.
You can test your packages and SCORM behavior by using the SCORM Cloud's free testing sandbox (http://scorm.com/scorm-solved/scorm-cloud-features/content-just-works/testing-content-with-scorm-cloud/). This environment will allow you to upload a course and see how it behaves on PCs and Mobile Devices.
The SCORM Cloud can become a part of your LMS project, via an API. (Full disclosure, I work for Rustici Software). Our SCORM Cloud is a great way to get started with adding SCORM conformance to your existing LMS. It's a monthly pay-as-you-go model, based on your use.
We do have the ability to play SCORM content offline, on Android and Mobile Devices. This functionality requires that our SCORM Engine be fully integrated with your application, running on your own servers. We offer SDKs for Android and iOS that will allow you to download a special offline package, to play on mobile devices in WebView. The learner can take the downloaded content offline, then sync the tracking data back up to your LMS, when the device revives its internet connection. The offline piece is technically difficult and carries higher licensing fees. You can find more information, a demo video, and licensing details here (http://scorm.com/scorm-solved/scorm-engine/mobileoffline-scorm/).
If you'd like to talk-through all this, feel free to let me know. I'm happy to help you explore your options for this, even if you choose a path that does not involve our products.
Chris Tompkins Rustici Software | SCORM.com | TinCanAPI.com 615.669.4697
I'm unaware of any free option to integrate SCORM in your LMS. Few important things to consider when absorbing your options (build vs buy) -
Build Considerations:
Communication = JavaScript:
Both versions of SCORM communicate strictly with JavaScript via a Runtime API which manages read/write rules within the communication spec. Your typically storing the students attempt when the content calls commit. You can do this purely with a JSON post for example; typically asynchronous to ensure the student data gets stored. This would require you to manage your student attempt posts, and also evaluate their exit states and other items.
UI: Lesson Viewer
You'll need to support launching these SCORM packages in IFRAMEs, New Windows, LightBox (or similar) as well as popups possibly. You'll need to manage pulling a clean or suspended student attempt, then exposing the Runtime API (depending on SCORM version) and then loading the content and waiting for commit/terminate calls. Even considerations about how you want to display the lesson navigation.
Time to market on this may require short cuts, and I feel its important to mention that watering down your Runtime API or making it more of a skeleton than anything feature rich can save time, but ultimately may cause compliance/conformance issues with your packages. Whether you've created your platform to work on mobile is one thing, but it will also greatly depend on if your content has mobile capabilities. Often you'll be in a situation where mobile creates new challenges not only with the display, but also with memory limits and performance depending.
Web Service/API
The C# side of things would need to ingest these student attempts, manage their status/states in conjunction with the spec.
Reporting
Based on your use cases you can fill in the blank here. Typically you'll need to represent reports for teachers/admins to a varying degree.
Buy Consideration$
As stated here there are associated costs considering purchasing support like this. Their may be associated annual support costs, seats, or other limits including the integration of these systems with your project. There are hosted platform solutions, cloud/server options and integrations as well as database, code and services drop ins that may be compatible with your programming language.