How to track values from an eLearning course outside of an LMS
The new year came with a wave of very low temperatures here in Canada, but also brought a wave of very interesting and challenging requests from our clients. One of them, specifically, requested a modification to an eLearning course, that consisted in tracking some values out of it, but without hosting it in a LMS, meaning that they wanted to distribute the course as a web page (kind of).
So, without an LMS, how do you track values, for example, when a learner answers a specific question in the eLearning module?
Well, in our case, since our client didn’t want to keep track of user data (like emails, names, etc.), only answers to multiple choice questions, we made use of a few procedures, that allowed us to tally the data in a .CSV file.
Here is the general idea of the things you have to keep in mind to code this functionality:
Authoring tool
Because of the nature of this functionality, most probably you will have to rely on technologies that are not included in the authoring tool, like JavaScript or PHP. In our case, since the eLearning module was developed using Storyline 360, we made use both JavaScript and PHP to save the data in a CSV file.
Overall, the process can be a bit tricky, since the main part of the functionality lies outside the Storyline file, but inside, we need to make sure that the values we want to track, are stored in variables, and then, at the appropriate point in the module, send those values to our custom script using JavaScript.
JavaScript
Since we need to store those values in a file that sits on the server, we can’t really achieve this only using JavaScript, however, we can make use of this language to asynchronously store the data in the CSV file. The beauty of asynchronous processes, is that the are executed in the background without interfering with the display or behaviour of the web page.
To achieve this, we included the latest version of jQuery in the head of the HTML files that result from publishing the module for Web in Storyline. Then, we receive the values from Storyline and then create a request to a PHP file using the ‘post’ method of AJAX, to make all our computations and store the values.
PHP
Finally, the main part of our functionality, we create a PHP file that is asynchronously called by JavaScript. This file receives the values pulled from the eLearning course, reads the CSV file stored in the server and, depending on the values received, it increments the tally, and finally updates the file.
The interesting part is that, with this CSV file, the client can perform analysis in Excel in case they want to (like creating charts).