Log storage: Logstore xAPI

Maintained by Picture of jerrett fowler jerrett fowler, Picture of Ryan Smith Ryan Smith, Picture of David Pesce David Pesce
Logstore_xapi is a logstore plugin which emits xAPI statements (also known as Tin Can) to an LRS of your choice.
327 sites
19 fans

What does it do?

As stated on the Github repository, the plugin simply “emits events from the Moodle Logstore as xAPI or TinCan statements”. For those that don’t know, the Moodle Logstore is a log of activities in 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/TinCan 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.


Screenshot #0


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

Comments RSS

Show comments
  • Picture of 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!
  • Picture of wael alkhatib
    Fri, 16 Sep 2016, 9:53 PM
    Thankx for the nice plugin !. Did you test it on moodle 3.1 ?
  • Picture of Ryan Smith
    Fri, 16 Sep 2016, 9:58 PM
    Hi Wael, you're very welcome. I think Jerrett has tested it on Moodle 3.1.
  • Picture of wael alkhatib
    Fri, 16 Sep 2016, 11:17 PM
    Hi Ryan, thankx.
    Which statements are supported since I can see only 'viewed' statements captured
  • Picture of Ryan Smith
    Fri, 16 Sep 2016, 11:42 PM
  • Picture of jerrett fowler
    Mon, 19 Sep 2016, 8:34 PM
    I believe the plugin works on 3.1, although my tests were not exhaustive!
  • Picture of 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!
  • Picture of 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.
  • Picture of Sara Arjona Téllez
    Wed, 3 May 2017, 2:25 PM
    Has anybody tested this plugin in Moodle 3.2? Thanks in advance smile
  • Picture of 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.
  • Picture of jerrett fowler
    Wed, 3 May 2017, 9:21 PM
    I've tested with 3.2 and so far it's working just fine.
  • Picture of 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
  • Picture of Ryan Smith
    Thu, 8 Jun 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.
  • Picture of Antonio Balderas
    Mon, 24 Jul 2017, 6:36 AM

    I'm trying to install it on Moodle 3.3, but I am receving an error when validating (Validating logstore_xapi ... Error). Then the installation is cancelled. Is there something I'm doing wrong?

    Thanks in advance,
  • Picture of Ryan Smith
    Mon, 24 Jul 2017, 4:26 PM
    Hey Antonio, thanks for your comment. That is quite interesting, I assume you're using the latest version of the plugin. Please post this issue on our Github issue tracker and we'll try to resolve it there (it's a little easier to follow the thread on there). https://github.com/xAPI-vle/moodle-logstore_xapi/issues/new
1 2
Please login to post comments