Build vs Buy:
There are often several threads/posts online seeking a free SCORM Runtime API, and anyone
who has done a bit of research has
probably come up empty. This is because of a number of reasons.
- This can take a handful of developers up to 2 years to accurately create
- Finding developers familiar with end-to-end SCORM
- Thousands of pages of white paper specifications to read
- The availability of server-side code (PHP, ASP/ASP.NET, Ruby, JSP etc...) to match
There are other options like subscriptions to online portals commonly off-site, and
Your team may decide building your own is the way to go, but if you are in a deadline
pinch, you simply won't
have the time to fashion a SCORM Runtime API, and the necessary backend components (let
alone the student frontend experience).
This includes the enforcement of the Runtime
API states, error codes, diagnostic messages and all the console logging if the debug
feature is turned on.
You can integrate this with your Portal, and likewise your backend or server-side
architecture. This project is decoupled from the
common issues that occur on other platforms.
The SCORM 2004 Specification is comprised of 3 key areas:
- Sequence and Navigation
Most of SCORM 1.2 was labeled 'optional'. So the implementation learning curve for base
support was minimal. This is also a substantial
why this version of SCORM was the most popular. It also didn't include any Sequence and
Is it all just Marketing?
This is a common question that pops up. SCORM enables entities to share their content
with other platforms that support SCORM. They
may have invested thousands if not millions in courses. Being able to actively integrate
SCORM in your proprietary system will enable
you to support these lessons and enable you to choose how they bubble up there status,
scoring and interactions.
SCOBot SCORM 2004 & 1.2 Runtime Environments
This was built in conjunction with the SCOBot SCORM Content API which assists developers
adding SCORM support
to their custom Shareable Content Objects.
- API Support for SCORM 2004 & SCORM 1.2
- Event triggers your LMS portal can 'listen'
- Manages cached CMI (student attempt)
- Force terminate interval for SCOs that exit,
but don't terminate
- JSON Attempt Object - simple integration
- Integrate with your backend language of
- Performance: Low-latency cached student
- Commit-guard - will not allow a commit
unless data has changed.
- Example SCOBot Portal Integration
- Shared State Persistence namespace (in
- ADL Sequence & Navigation
The wrench signifies area of the API which are under construction. This is a pure
attempt. Code on your server will still need to be required to fully support SCORM 2004
unpacking of content, validation and
mode, credit, student name, id, and other parameters required by the specification.
Events as mentioned above are fired which
you can listen to, along with API support for direct interaction. Since server-side
logic commonly occurs within languages
like PHP, ASP.NET, Ruby, etc, and other Databases like mySQL, SQL Server, Postgres, etc,
it leaves these areas for your team to integrate.
If you are a commercial entity, and or have a paid service/access, and would like the
source code, please note the "Buy" option has been added. However,
if you'd like more information, a demo or sample that can be made available.
Advanced Distributed Learning actually has a certification
for Learning Management Platforms.
That effort requires a 3rd party to review/analyze your software for roughly $4,000.
What you get
SCOBot RTE comes with a sample (responsive) Lesson Viewer which allows you to see
everything in action.
Documenation, and a timeline is provided to help assist with common things your platform
is responsible for before, during
and after a student completes their content. It supplies example IFRAME or framed
content, as well as a new window or tab, as
well as a popup and lightbox or lightview option. This sample will aid in the
development of your own Lesson Viewer.
Also included is sample JSON based data-models for conveying assignments, and student
attempt data. This is for ease of use
integrating these data points with a web API on your server, using your favorite
with your existing platform code base - is