Training Post has several feature which allow course authors to integrate a little more closely with the management system.


All of these integrations are scoped to a learners session within the context of a single course. At this time it is assumed these actions will all be performed from with a SCORM course.


Module Status

Modules with a course can retrieve a JSON formatted document detailing the current status of all modules in the course. We envisage this being used to give learners higher level context of their progress within elearning modules.


Module Navigation

Modules can request the learner is taken to another module in the same course. This allows large courses to be broken into smaller parts without the learner having to experience a fragmented experience of going in and out of the management system. It is also possible to build a custom menu for the course using this interface combined with the Module status interface.


Learner Task Submission

It is possible to build a form within a module which will submit a document to a Learner Task within the same course.
The status and feedback on these tasks can be retrieved from the Module Status end point as above. 


In combination these allow authors to build a complex course combining blended elements of elearning and manual task work which are experienced through a custom user interface.


Implementation Details

Module Status 

coming soon


Module Navigation

When a course is opened a JS object (TPCourseAdapter)is prepared in the main Training Post window .

This can be accessed from within your course via the window.opener property.


The adapter implements a goToModule method which takes the target module’s module_id and an "onFail" callback method.


Example implementation of a "Next Module" function that could be in a SCORM course:

function NextModule()
         {
            const courseAdapter = window.opener.TPCourseAdapter;

            const onFail = (message) => {
               console.log({
                  ErrorMessage: message
               })
            }

            courseAdapter.goToModule('10Q', onFail);
         }

What this does is:

  • get the main window’s TPCourseAdapter

  • create a callback method in case the course cannot load the next module

  • calls the TPCourseAdapter.goToModule method with the target module’s module_id ('10Q')and the onFail callback method which will log the returned error message.. 

The goToModule method will check the target module is valid and return an error message to the onFail callback. If the requested module is valid, the window will move on to a loading page (saving the current module data) and then loading the target module.

In this way if the navigation fails for any reason your course can present a suitable message to the learner. The following messages may be returned to your error handler:

  • 'No module found.' : There is no module matching the ID provided.
  • 'Module already completed.' : The learner has already completed the module and it does not allow browsing. (browsing is coming in v1.63).
  • 'Module is not an e-learning module.' : You may only navigate between elearning modules at this time.
  • 'Could not launch module.' : An un known issue prevented the module launching.



Learner Task Submission

coming soon