Building LA ecosystems

4 minute read

Welcome! This blog post has resources and links for the workshop I am giving for LASI19 on Building Learning Analytics Ecosystems. Follow the links alongside to find the relevant activity.

My Slides

Download them if you want to have a look! (Don’t skip ahead though! Grrrr.)

Activity: Build a LRP

NB: Make sure you ask Kirsty to give you login information for the LRS so that you can go and have a look at the data resulting from this exercise! (She is not sharing it here as we are goign to use one of her private LRSs!)

This exercise is going to give you a taster in what it takes to build a LRP (Learning Record Provider). I also expect that it will introduce you all to the issues associated with achieving data interoperability across multiple LRPs… but more on that later ;) We are building off of the great starter resources provided by Anthony Altieri and Bryan Jones, but with a slight twist… you should work out your own statements! Feel free to look at those tutorials if you are having troubles, but you should work to define a statement that best describes the specific action being performed by the learner you are tracking.

Basically, here are the four steps you must take to send an xAPI statement to a LRS:

  1. Define a variable that holds the URL address of the learning record store (LRS) and the username and password to authenticate
  2. Tell the browser to use that variable for the LRS
  3. Create a variable and define the xAPI statement
  4. Send the statement

Below you will see some more detailed instructions about how to do this… pair up with someone you don’t know and work with them through this activity!

Follow these steps

  1. Download this file and open up LRP.html in your favourite text editor
  2. You will need to fill in a few fields:
    • LRS endpoint:
    • Username: participant
    • Password: password
    • the learner’s unique id (an email will work here, but feel free to add extra information to this field… look up the stuff you can add here)
    • the verb (and maybe an activity… look at the xAPI specification linked to above for info!)
    • an object
  3. You need to go and get some files from ADL to support sending statements!
    • Go to
    • Go to dist folder, copy the xapiwrapper.min.js file and paste it into the folder you have your LRP.html file in
    • Go to lib folder, copy the cryptojs_v3.1.2.js file and paste it into the same folder
  4. Open up the edited file in your web browser. Try clicking the button - does it work?
  5. Log into the LRS and explore the data in it… are your statements there? Here are some things that might help you troubleshoot if your statements are not showing up:
    • are your statements legal? Check the spec, or… see the next step
    • check the log entries… you might find some error messages pertaining to your LRP (where are these in this LRS? Can you find them?)
    • have you got your xapiwrapper.min.js and cryptojs_v3.1.2.js files in the right place? NB. you need to have a wrapper file for your LRP.html file to work!
    • if you are still having troubles then the LRP-example.html file should work… (if you have the wrappers etc. in the same folder)
  6. Go and have a look at the other statements in the LRS! What analytics and reporting does it provide? Are they any good?
  7. Can you extend your LRP to provide more information? What about a context element? Maybe you can add a second button or other thing to the page… how would you define a statement for that object?
  8. Try sending your statements to a different LRS! Some of the other free ones are Yet, watershed and SCORMCloud… or you could try creating your own Veracity one and sending statements there ;)

Pick a challenge

In the afternoon we will focus upon further exploration of key avenues that you find interesting.

  • You need to form into groups of at least 4 who all want to work on one of these challenges (or a combination of them).
  • You should work together using the resources associated with each challenge to come up with an artefact.
  • Each group will have to present its findings at the end of the day!

Challenge 1: best practice xAPI profiles

Can you build a profile that will provide data the LA community can actually use?

Resources that might help:

Challenge 2: design an extension to the LA-API schema

Can you extend the LA-API schema design to facilitate more LA?

Resources that might help:

Challenge 3: extend the LA-API

Can you fork the LA-API/mongo-extract and extend them to add new functionality

Resources that might help:

Challenge 4: design a dashboard

Can you leverage data interop to build dashboards that self populate using all relevant data?

Resources that might help:

Challenge 5: explore the ethics of data interoperability

What might go wrong if data flows across institutional boundaries?

  • Ask Kirsty to share the paper she just wrote on this issue…
  • Have a look at this white paper on the topic (published in 2019)
  • Look up anything by Prinsloo and Slade