Search code examples
scormadobe-captivatetin-can-apiarticulate-storyline

Is implementing LMS Scorm Tracking without an authoring package feasible for a beginner?


Prior to building an eLearning solution, I am determining whether to use an authoring package such as Captivate or Storyline or to create HTML pages which utilize JS calls for tracking. If I avoid using an authoring tool, I get flexibility in terms of the content and reuse of existing assets. For example, Storyline is outputting SWF files which I cannot pass around my team like a simple HTML page for review. However, I am new to SCORM.. and I am wondering is it feasible to get up to speed with implementing SCORM LMS tracking JS calls along with my custom HTML pages, or would the preferable approach be to start with an authoring tool?


Solution

  • Yes, it's very feasible if you're comfortable with HTML and JavaScript.

    SCORM supports many complex scenarios, but the dirty secret of most e-learning development tools is they only use the most barebones elements of SCORM: bookmarking, completion status, score. Adding this level of barebones SCORM support to a hand-made HTML/JS course is really easy, and in the simplest cases should take only a couple of hours.

    There are a lot of libraries to get you started so you don't have to reinvent the wheel or get caught up in some of the details, much like jQuery vs vanilla JS.

    The organization that created SCORM provides a wrapper. They updated it in 2011; it's much better now, though it still suffers from global namespace pollution.

    Andrew's post advocates Rustici Software's tools (he works there). They're great guys, SCORM and xAPI (Tin Can) experts, and their code is solid, but their code is not open-source, if that matters to you. (FWIW, they have a great online reference chart for SCORM run-time calls, I use it all the time.)

    I've heard good things about JCA Solutions' products, but have not used their code myself.

    In 2008 I wrote my own SCORM wrapper (open source, available on GitHub), which met my own needs -- your mileage may vary. I wrote it in part because I was dissatisfied with the wrapper provided by ADL at the time. Their wrapper suffered from global namespace pollution, and didn't provide any error handling. I noticed I kept writing the same error-checking and conditional logic to my courses over and over. I decided to move some of this to the wrapper in order to keep my course code minimal and DRY. If you're interested, I wrote a simple tutorial for adding SCORM to an HTML file using my wrapper (note this is a single HTML page, if you use multiple pages, you will need to use iframes to prevent accidentally killing the API connection).

    My wrapper is old and not perfect, and I am not a self-promoter. I suggest you try all of the wrappers mentioned by the other posters and find one that feels most natural/intuitive to you, works best for your style of coding, and meets your licensing requirements. They all do a good job of shielding you from complexity and helping you get your course up and running.

    Bottom line: you don't need to use off-the-shelf development tools, HTML is a great choice, and as you can see, there is a decent community available to help.