Logstore xAPI

Log storage ::: logstore_xapi
Maintained by David Pesce
Logstore_xapi is a logstore plugin that emits xAPI statements to a Learning Record Store (LRS). Please post all questions, comments, and issues to Github (https://github.com/xAPI-vle/moodle-logstore_xapi).
Latest release:
822 sites
469 downloads
50 fans
Current versions available: 2

What does it do?

As stated on the Github repository, the plugin “emits events from the Moodle Logstore as xAPI statements.” For those that don’t know, the Moodle Logstore is a log of activities within Moodle. When you view a course, complete a quiz, or grade a student, a log of that activity is recorded in the Logstore. The plugin uses these logs to produce xAPI statements and then sends (emits) them to an LRS (Learning Record Store).

How does it work?

The plugin is made up of three parts, an Expander, a Translator, and an Emitter. Every log entry goes through each of these parts in a six-step process before finally reaching the LRS (see below).

  1. The plugin passes the log entry from the logstore_standard_log to the Expander.
  2. The Expander expands the log entry with data from your Moodle database.
  3. The plugin passes the expanded event from step 2 to the Translator.
  4. The Translator translates the expanded event to xAPI/TinCan recipe options.
  5. The plugin passes the translated event from step 4 to the Emitter.
  6. The Emitter constructs the translated event as an xAPI/TinCan statement and emits it to the LRS.

Potential privacy issues

This system sends logging information over the internet. This would include information about the user, links to their profile, and information of courses completed. It would be recommended to have a secure connection between your website and LRS if they are not within a private network.

Screenshots

Screenshot #0

Contributors

David Pesce (Lead maintainer): Developer
jerrett fowler: Developer
Ryan Smith: Developer
Please login to view contributors details and/or to contact them

Comments RSS

Comments

  • lee kirkland
    Fri, 9 Oct 2015, 4:45 AM
    Never mind I used file_put_contents('php://stderr', print_r($opts, TRUE)); and it dumped the entire thing to the error log for apache. It would be nice to know what sets it though, still hazy on that, is there a place to look that up?
  • jerrett fowler
    Fri, 9 Oct 2015, 4:55 PM
    You can basically see what is being sent over via the standard logstore database table. It only associates a userid with the event data. You may grab additional user data by running a query and pulling all data pertaining to that user id. This is already been done for the most part for you. If you look in the github repo, you will find some instructions on contributing to this project. There's 3 libraries you'll need to modify to get the info you're looking for. We've pulled a lot of user data back as a "context" of the event, so if you wanna associate an email with mbox, you should look into doing a pull request. Please take a look at the repos and contribute by doing a pull request.

    https://github.com/jlowe64/moodle-logstore_xapi
    https://github.com/LearningLocker/Moodle-Log-Expander
    https://github.com/LearningLocker/Moodle-xAPI-Translator
    https://github.com/LearningLocker/xAPI-Recipe-Emitter
  • lee kirkland
    Sat, 17 Oct 2015, 3:52 AM
    Thanks bud! I'll look into doing a pull request. We are also demoing this with watershed, so I'll try and upload anything useful I notice between that LRS and Moodle. I'm also having to program a block, so kinda jammed up right now. But thanks for getting back with me!
  • wael alkhatib
    Fri, 16 Sept 2016, 9:53 PM
    Hi,
    Thankx for the nice plugin !. Did you test it on moodle 3.1 ?
  • Ryan Smith
    Fri, 16 Sept 2016, 9:58 PM
    Hi Wael, you're very welcome. I think Jerrett has tested it on Moodle 3.1.
  • wael alkhatib
    Fri, 16 Sept 2016, 11:17 PM
    Hi Ryan, thankx.
    Which statements are supported since I can see only 'viewed' statements captured
  • Ryan Smith
    Fri, 16 Sept 2016, 11:42 PM
  • jerrett fowler
    Mon, 19 Sept 2016, 8:34 PM
    I believe the plugin works on 3.1, although my tests were not exhaustive!
  • Dillon Esterhuizen
    Tue, 1 Nov 2016, 3:01 PM
    Hi there!

    I have a similar question to Lee Kirkland who posted above. I'm trying to add custom user profile fields to the statements so that they show up in the LRS as well but I'm not sure how to add it in your code. I'm using the plugin version 1.0.0 and Learning Locker as the LRS.

    I understand that there are 3 libraries I need to add it to, i.e. the expander, the translator and the emitter, but I can't figure out where inside of them to add it. I know that the standard log only records the user's id, which means that there must be some query somewhere that then gets all that user's information from the user table as well, but I can't seem to find it to add to that query.

    Do I add it to the controller or the repo of each library, or both the controller and the repo (I would imagine that it shouldn't need to be added to any events as it is information required for every event)? And are there existing functions that I add it to or do I need to create a function specifically to query this data? Also, I would imagine I'd need to add it to the statements as well? I hope I'm asking the right questions.

    Your help would be greatly appreciated!
  • Ryan Smith
    Tue, 1 Nov 2016, 5:47 PM
    Hey Dillion, this is a really good question and one that will surely be asked again, so I've copied your question to a new Github issue on our repository to make it easier to manage and thread together the conversation, I hope you don't mind.
    https://github.com/xAPI-vle/moodle-logstore_xapi/issues/87
  • Sara Arjona Téllez
    Wed, 3 May 2017, 2:25 PM
    Has anybody tested this plugin in Moodle 3.2? Thanks in advance smile
  • Ryan Smith
    Wed, 3 May 2017, 4:55 PM
    Hi Sara, thanks for your question. The plugin should work with 3.0, so assuming Moodle follows semantic versioning, it should also work with 3.2, although I haven't personally tried it with 3.2.
  • jerrett fowler
    Wed, 3 May 2017, 9:21 PM
    I've tested with 3.2 and so far it's working just fine.
  • Sebastian Castellanos
    Sun, 21 May 2017, 11:11 PM
    Hi there !
    I've configured the plugin with waxlrs, and it's working ok , but, for all user on quiz I can only see view statements but not complete.
    I checked the list of sent event and I see that \mod_quiz\event\attempt_reviewed will fire a complete statement . But no sure when attempt_reviewed is fired . This mean that a profesor interaction is necessary ? I would like to achieve when the student finish the quiz then, a complete statement is fired with the score. How I do that ?

    Best Regards
  • Ryan Smith
    Thu, 8 June 2017, 6:36 PM
    Hey Sebastian, thanks for your comment. I think you'd be better served by making this comment on our Github issue tracker https://github.com/xAPI-vle/moodle-logstore_xapi/issues/new. It's just a little hard to keep a track of this thread on here unfortunately.
Please login to post comments