Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-67734

Create basic skeleton for a global xAPI library needed for H5P content




      A basic xAPI LRS support is needed In order to get statements from H5P content.

      This first issue will cover the following needs:

      • Have a "lib/xAPI" library for the main LRS access point
      • A generic Moodle webservice layer which wraps a xAPI statement processing
      • xAPI handler base classes which every plugin can extend to use xAPI on their code
      • xAPI statement class to generate xAPI statements with all related classes for handling actors (user, group), objects and verbs (the rest of xAPI properties would be compatible but validations will be responsibility of every plugin for now).
      • PHPUnit test
      • Null privacy provider

      The web service for processing a xAPI statement will delegate part of the process to specific plugins like the future mod_h5p.

      xAPI generic webservice (component, statement)

      The web service receive a frankenstyle component responsible to handle part of the statement and a xAPI statement structure.

      xAPI Statement generic processing method will:

      1. xAPI checks the statement structure, if any check fails, it returns an error. That means:
        1. Check that only supported xAPI attributes are used
        2. Check all users and groups are created in the LMS
      2. xAPI checks if the component has a xAPI handling class implementation. Otherwise it returns an error.
      3. For every statement:
        1. xAPI asks again the plugin to you convert into a standard event. In case the plugin could not convert some statement into an event, this statement will be marked as “rejected” and xAPI continue to the next statement.
        2. xAPI handler will trigger all the generated events
      4. Once all statements are processed:
        1. If ALL statements are marked as “not processed” it returns an error.
        2. If some statement could be processed, returns an array containing “true” if the statement is processed and “false" otherwise.



        Issue Links



              tusefomal Ferran Recio
              tusefomal Ferran Recio
              Carlos Escobedo Carlos Escobedo
              Andrew Lyons Andrew Lyons
              CiBoT CiBoT
              2 Vote for this issue
              11 Start watching this issue



                Time Tracking

                  Original Estimate - 0 minutes
                  Remaining Estimate - 0 minutes
                  Time Spent - 4 weeks, 6 hours, 12 minutes
                  4w 6h 12m


                    Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.