I’m wondering.. on the sort function, will this query sort ALL of the results, or will pagination still be an issue at scale if the highest scores are a few LRS pages back? I’m building courses at an organization with 70k+ active users, so looking through a few dozen statements at a time won’t show a meaningful window of time. I’ve got some ideas about how to handle this, but am just curious if you’ve run into this!
Yes, this probably will not be a viable option with that many statements. I haven't worked with xAPI much in the past year or so, but check out the State and Profile APIs (I think that's what they were called). You can basically store a "high scores" document and then just check any individual user against that document, adding them if they earn a spot. This stops you from having to sift through hundreds, thousands, or millions of statements. The single high score doc just needs to stay updated.
@@DevlinPeckYT that’s super helpful! I just figured out how to make multiplayer games with xAPI a couple weeks ago that learners can play together from their own machines, but this high score thing had me a bit stumped. I’ll check out your suggestion and reply back!
can i do it without LMS ? and I want to export the score and names to excel sheet for example there's exam and I want o collect the score of all learners in excel sheet
Hi Shoeb. You bet. I'm spending a couple more weeks on my "Become an ID" series, then I'm diving back into the xAPI content. We'll do a detailed breakdown of each part of an xAPI statement (and a whole lot more). Stay tuned :)
How would you use the course timer as a score multiplier? My Leaderboard isn't displaying using the code in the video. I checked console and it kicks out an error: bootstrapper.min.js:2 actionator::exeJavaScript - player.setVar is not a function Is it an issue with const player = GetPlayer() loading too late? How can I fix it?
@@DevlinPeckYT I'll give it another shot after editing and see if that was it. I tested in console and got the first username to display but it errored out after trying the second one. I'll make the change and see if that was it. Thank you!!! :)
@@DevlinPeckYT Rebuilt it after running a find replace for all lowercase setVar for SetVar and it worked. I wish there was an xAPI beautifier to clean up my code and laziness! Thanks Devlin :)
I have created my storyline course but when I upload my course on my LMS, it does not execute any of my javascript files. So, it does not send xAPI statements from my course after uploading. Hope, you can tell something.
Great series, as someone who is new to xAPI i found this extremely helpful :)
That's great to hear!
Thanks Devlin for the great series! Just what I've been looking for :)
You’re welcome! Glad that you found it 😃
Todos los tutoriales de esta serie, fueron ¡increíbles!. Gracias.
Gracias 😃
You are amazing!
Haha thanks :)
Should it work on LMS?
Yes, it should :)
I’m wondering.. on the sort function, will this query sort ALL of the results, or will pagination still be an issue at scale if the highest scores are a few LRS pages back? I’m building courses at an organization with 70k+ active users, so looking through a few dozen statements at a time won’t show a meaningful window of time. I’ve got some ideas about how to handle this, but am just curious if you’ve run into this!
Yes, this probably will not be a viable option with that many statements. I haven't worked with xAPI much in the past year or so, but check out the State and Profile APIs (I think that's what they were called). You can basically store a "high scores" document and then just check any individual user against that document, adding them if they earn a spot. This stops you from having to sift through hundreds, thousands, or millions of statements. The single high score doc just needs to stay updated.
@@DevlinPeckYT that’s super helpful! I just figured out how to make multiplayer games with xAPI a couple weeks ago that learners can play together from their own machines, but this high score thing had me a bit stumped. I’ll check out your suggestion and reply back!
@@Inceptionlabsinc Should be able to use a Google Sheet and Zapier to update a larger table then pull from that.
can i do it without LMS ? and I want to export the score and names to excel sheet for example there's exam and I want o collect the score of all learners in excel sheet
You can indeed! And you would use a different approach to send the data to a Google Sheet...I don't have a tutorial for that on the channel yet
Hi Devlin, can you make a video about the context part of the xAPI statement as well, please?
Hi Shoeb. You bet. I'm spending a couple more weeks on my "Become an ID" series, then I'm diving back into the xAPI content. We'll do a detailed breakdown of each part of an xAPI statement (and a whole lot more). Stay tuned :)
How would you use the course timer as a score multiplier?
My Leaderboard isn't displaying using the code in the video. I checked console and it kicks out an error:
bootstrapper.min.js:2 actionator::exeJavaScript - player.setVar is not a function
Is it an issue with const player = GetPlayer() loading too late?
How can I fix it?
Hi! You can just JavaScript to manipulate the score as needed. And it looks like you typed "setVar" instead of "SetVar" :D
@@DevlinPeckYT I'll give it another shot after editing and see if that was it. I tested in console and got the first username to display but it errored out after trying the second one. I'll make the change and see if that was it. Thank you!!! :)
@@DevlinPeckYT Rebuilt it after running a find replace for all lowercase setVar for SetVar and it worked. I wish there was an xAPI beautifier to clean up my code and laziness! Thanks Devlin :)
I have created my storyline course but when I upload my course on my LMS, it does not execute any of my javascript files. So, it does not send xAPI statements from my course after uploading. Hope, you can tell something.
Can you try adding the script tags to the index-lms.html file instead of the story.html file? That should resolve this 😊