OpenOlat supports SCORM 1.2 for a long time. The implementation has several issues:
- The server side runtime is built on code that was originally designed to run on the client as a java applet
- The source code for the implementation got lost over the years
- The API adapter is very old and weakly tested
- Recent changes in the Google Chrome regarding the behavior of XMLHttpRequest requires a complete rewrite of the API adapter
- Workarounds for the Google Chrome problem we implemented so far are (
OO-5097) only partially successful. More modules came to our attention that doe not run properly
The only solution we see to fully resolve the Google Chrome problems is to switch to a client based SCORM engine. Luckily we found one that suits our needs: scorm-again
- Embed scorm-again in OpenOlat instead of the OpenOlat API adapter
- Implement hooks required by scorm-again to handle retrieving and persisting of data
- Work around OpenOlat specialities such as the "close on finish" option
- Extend the implementation to accept longer suspend data as defined in the spec. Unfortunately there are many modules out there that do not respect the spec in this regards.
As a benefit of using scorm-again the hope to support SCORM 2004 sometime becomes a real option as scorm-again can run also 2004 modules. However, the simple sequencing aspect of the 2004 spec still needs to be implemented on the server side.
Support for 2004 is not part of this issue, funding is required.