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
447 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

Show comments
  • Mouaici Mohamed
    dt., 29 de maig 2018, 4:08 PM
    Dear all,
    I'am trying to debug the source code of Logstore xAPI, in order to understand how this code works to be able to adapt it to my use case. For this, I wonder what is the entry point of this code? Thank you in advance for your reply
  • Ryan Smith
    dc., 30 de maig 2018, 4:59 PM
    Hi Mouaici, the entry point is classes/log/store.php#L113 (https://github.com/xAPI-vle/moodle-logstore_xapi/blob/master/classes/log/store.php#L113). In future, please post questions to Github where you'll get a faster response (https://github.com/xAPI-vle/moodle-logstore_xapi/issues).
  • Mouaici Mohamed
    dv., 8 de juny 2018, 10:18 PM
    Thank you very much Ryan Smith smile
  • Dey Bendifallah
    dv., 20 de jul. 2018, 1:57 PM
    Hi Ryan,
    VENDOR folder is empty in the new zip file. Is old folder unchanged?
    Thanks
    Dey
  • Ryan Smith
    dv., 20 de jul. 2018, 6:00 PM
    Hi Dey, my apologies been trying to fix the auto-release and accidentally released a local zip file without the vendor. Please try again.
  • Dey Bendifallah
    dv., 20 de jul. 2018, 6:05 PM
    Thank you Ryan for this quick fix and for your great work.
  • Peter de Jong
    dc., 8 d’ag. 2018, 3:17 AM
    Hi Ryan,
    For some reason my plugin is not sending ANYTHING (as far as I can tell) to the Watershed LRS. My Activity Provider is correct because Tin Can Launch works with it. Can you please help me debug, or what could be the issue? Thank you.
  • siddharth jain
    dj., 14 de nov. 2019, 2:38 AM
    Hi Ryan and everyone,
    I am working behind institute proxy and trying to use this plugin in Moodle but no data is being transmitted to Learning Locker. I can see in the database that the table mdl_logstore_xapi_log is capturing events. I have also tried to send statements to Learning Locker directly which works. I followed the steps available in the website of h2tlabs. Please guide me.
  • Emmanuel Remy
    dl., 9 de des. 2019, 1:56 PM
    Hi everyone
    Have you planned to emit events for badges issuing?
    Thanks
  • David Pesce
    dt., 10 de des. 2019, 10:04 AM
    Hello Emmanuel - we have been maintaining the plugin via Github because Moodle doesn't allow automatic commits to the plugin site. We currently do not have badging events translating to xAPI statements, but we do have instructions on how to add new events. Feel free to submit it as a new issue and maybe even submit a PR if you feel comfortable. Thanks for your interest!
  • kl w
    dt., 1 de juny 2021, 2:52 PM

    Hello, i have issue .please help me. thanks


    sudo php /var/www/html/moodle/admin/tool/task/cli/schedule_task.php --execute=\\logstore_xapi\\task\\emit_task --showdebugging
    Execute scheduled task: Emit records to LRS (logstore_xapi\task\emit_task)
    ++ Failed load batch (298 events)
    ++
    * line 89 of /admin/tool/log/store/xapi/classes/log/store.php: call to debugging()
    * line 33 of /admin/tool/log/store/xapi/src/loader/utils/load_batch.php: call to logstore_xapi\log\store->logstore_xapi\log\{closure}()
    * line 26 of /admin/tool/log/store/xapi/src/loader/utils/load_in_batches.php: call to src\loader\utils\load_batch()
    * line ? of unknownfile: call to src\loader\utils\{closure}()
    * line 28 of /admin/tool/log/store/xapi/src/loader/utils/load_in_batches.php: call to array_reduce()
    * line 56 of /admin/tool/log/store/xapi/src/loader/moodle_curl_lrs.php: call to src\loader\utils\load_in_batches()
    * line 24 of /admin/tool/log/store/xapi/src/loader/handler.php: call to src\loader\moodle_curl_lrs\load()
    * line 36 of /admin/tool/log/store/xapi/src/handler.php: call to src\loader\handler()
    * line 138 of /admin/tool/log/store/xapi/classes/log/store.php: call to src\handler()
    * line 96 of /admin/tool/log/store/xapi/classes/task/emit_task.php: call to logstore_xapi\log\store->process_events()
    * line 157 of /admin/tool/task/cli/schedule_task.php: call to logstore_xapi\task\emit_task->execute()
    ++ #0 /var/www/html/moodle/admin/tool/log/store/xapi/src/loader/utils/load_batch.php(27): src\loader\moodle_curl_lrs\{closure}(Array, Array)
    #1 /var/www/html/moodle/admin/tool/log/store/xapi/src/loader/utils/load_in_batches.php(26): src\loader\utils\load_batch(Array, Array, Object(Closure))
    #2 [internal function]: src\loader\utils\{closure}(Array, Array)
    #3 /var/www/html/moodle/admin/tool/log/store/xapi/src/loader/utils/load_in_batches.php(28): array_reduce(Array, Object(Closure), Array)
    #4 /var/www/html/moodle/admin/tool/log/store/xapi/src/loader/moodle_curl_lrs.php(56): src\loader\utils\load_in_batches(Array, Array, Object(Closure))
    #5 /var/www/html/moodle/admin/tool/log/store/xapi/src/loader/handler.php(24): src\loader\moodle_curl_lrs\load(Array, Array)
    #6 /var/www/html/moodle/admin/tool/log/store/xapi/src/handler.php(36): src\loader\handler(Array, Array)
    #7 /var/www/html/moodle/admin/tool/log/store/xapi/classes/log/store.php(138): src\handler(Array, Array)
    #8 /var/www/html/moodle/admin/tool/log/store/xapi/classes/task/emit_task.php(96): logstore_xapi\log\store->process_events(Array)
    #9 /var/www/html/moodle/admin/tool/task/cli/schedule_task.php(157): logstore_xapi\task\emit_task->execute()
    #10 {main} ++
    * line 89 of /admin/tool/log/store/xapi/classes/log/store.php: call to debugging()
    * line 34 of /admin/tool/log/store/xapi/src/loader/utils/load_batch.php: call to logstore_xapi\log\store->logstore_xapi\log\{closure}()
    * line 26 of /admin/tool/log/store/xapi/src/loader/utils/load_in_batches.php: call to src\loader\utils\load_batch()
    * line ? of unknownfile: call to src\loader\utils\{closure}()
    * line 28 of /admin/tool/log/store/xapi/src/loader/utils/load_in_batches.php: call to array_reduce()
    * line 56 of /admin/tool/log/store/xapi/src/loader/moodle_curl_lrs.php: call to src\loader\utils\load_in_batches()
    * line 24 of /admin/tool/log/store/xapi/src/loader/handler.php: call to src\loader\moodle_curl_lrs\load()
    * line 36 of /admin/tool/log/store/xapi/src/handler.php: call to src\loader\handler()
    * line 138 of /admin/tool/log/store/xapi/classes/log/store.php: call to src\handler()
    * line 96 of /admin/tool/log/store/xapi/classes/task/emit_task.php: call to logstore_xapi\log\store->process_events()
    * line 157 of /admin/tool/task/cli/schedule_task.php: call to logstore_xapi\task\emit_task->execute()
    298 event(s) have failed to send to the LRS.

  • Andrea Basto
    dv., 4 de març 2022, 6:05 PM
    Does this plugin run correctly with version 3.9 too ?
  • Tien Nguyen
    dc., 28 de set. 2022, 9:44 AM
    Hi, this is a really awesome plugin. Does it work for moodle 4.0?
  • David Pesce
    dg., 2 d’oct. 2022, 7:58 PM
    Hello Tien - the plugin does work with 4.0, but it needs some updates in order to work perfectly. Plans are in the works to migrate this repository to another developer who can update and maintain it more frequently.
  • Sean Rugge
    dl., 27 de febr. 2023, 9:39 PM
    This plugin is very useful. Are there any plans to include quiz response data and h5p activity response data in xAPI statements?
1 2 3 4
Please login to post comments