Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

xAPI interceptor - implementation #13

Closed
AltiMario opened this issue Jul 20, 2022 · 1 comment
Closed

xAPI interceptor - implementation #13

AltiMario opened this issue Jul 20, 2022 · 1 comment
Assignees

Comments

@AltiMario
Copy link
Member

AltiMario commented Jul 20, 2022

To recap what we did until now
xapi-interception-steps
-1, -2, and -3 are done.
-4 and -5 are the goals of this ticket.
Now that the statements are correctly stored in our LRS we have to intercept/get them and generate a hash (better if SHA256) for every single statement (or a bunch of them).
For example, this xAPI statement of MCQ: is
"object": { "id": "http://iMN2Cp-biyUt-jvXp_Ecw2A5z-SfiY9V_rise/RpCLjWOYobK8Fi2p7ZZr_NDLlE9ei8rt/cjz7jfvyd002y3h5y51r4rrtg_1658239762358", "objectType": "Activity", "definition": { "type": "http://adlnet.gov/expapi/activities/cmi.interaction", "name": { "und": "Did you know that you can add images to your questions? After adding a question, simply click the camera icon. " }, "description": { "und": "Did you know that you can add images to your questions? After adding a question, simply click the camera icon. " }, "interactionType": "choice", "correctResponsesPattern": [ "cjz7jfvye002z3h5ymcx3exy8" ], "choices": [ { "id": "cjz7jfvye002z3h5ymcx3exy8", "description": { "und": "Choice 1" } }, { "id": "cjz7jfvye00303h5yfekkhzb7", "description": { "und": "Choice 2" } }, { "id": "cjza807kk003g3h635zjvg69v", "description": { "und": "Choice 3" } }, { "id": "cjza8095b003h3h63dltfuyf4", "description": { "und": "Choice 4" } } ] } },
will be transformed via SHA256 into
bdb0db3636c43f3093b25ba14ab050e669876be05327deb82de8b5d38b9283ea
Therefore, the unique hashes generated will be temporarily stored in a log or DB. I mentioned temporarily because, at another development stage, these hashes will be stored on-chain and associated with the learner.

There are 3 ways to intercept the statements:
-via LRS push (but it seems to me the SQLRS we use doesn't support it)
-via LRS pull (it is possible to read SQLRS DB or API in a corn way, every X minute)
-via forwarding through LRSpipe (https://www.sqllrs.com/lrspipe).
I don't know yet if LRSpipe is sync or async and if it does LRS to LRS only but it could be configurable.

@AltiMario
Copy link
Member Author

after updating with the last moodle version (4) the plugin used () before to store xAPIs statements into LRS doesn't work anymore, so point -3 is not working.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants
@AltiMario @shozab and others