openedx / openedx-aspects

Aspects - Analytics for Open edX
Apache License 2.0
6 stars 7 forks source link

Investigation: Can we use the SuperSet API to pull data into LMS? #29

Closed bmtcril closed 8 months ago

bmtcril commented 1 year ago

We have some exciting use cases available if we can use the Superset SSO to display data from the data lake in the LMS. I'd like to investigate how difficult it would be to create a plugin in edx-platform to pull some data into the either Studio or the LMS directly and display it. Nothing fancy for this investigation, just "number of registrations for this course" or "number of times this problem has been submitted" that only are visible to instructors, global staff, or superusers.

This tutor plugin should give you a starting place with permissions based in the LMS MySQL database: https://github.com/open-craft/tutor-contrib-superset/pull/1 and the Superset API is pretty well documented.

It has been suggested that XBlock asides could be useful to handle getting this into a course without creating substantial changes in the LMS.

AC:

bmtcril commented 1 year ago

Possible implementation options are Xblock Asides:

https://github.com/edx/edx-arch-experiments/tree/main/edx_arch_experiments/summaryhook_aside https://github.com/mitodl/rapid-response-xblock https://edx.readthedocs.io/projects/xblock/en/latest/runtime.html

Or using LTI, which would need further investigation

Ian2012 commented 1 year ago

assign me

Ian2012 commented 1 year ago

A demo with different interactions was created using an XBlock aside and an XBlock. You can find more details in the PR:

https://github.com/eduNEXT/aspects-superset-aside/pull/2

pomegranited commented 1 year ago

FYI @bmtcril @Ian2012 CC @ashultz0 đź‘‹

Or using LTI, which would need further investigation

Had a chat to @giovannicimolin, and LTI doesn't look like the way to go here..

  1. We'd need to add LTI support to Superset, making it an LTI provider application. Could do this using pylti1.3, but it's hard to say whether this would be accepted upstream. LTI is a learning tools integration protocol, ie providing content directed at learners, but we're targetting course staff here. If we were talking about adding LTI support to Superset so people could teach it as part of a data science course, that would be a different story.
  2. LTI doesn't authenticate using SSO -- the LTI provider app creates a new account and signs in the user, if one doesn't already exist. And we need SSO in order to fetch the user's list of courses they teach.
bmtcril commented 8 months ago

EduNEXT has an embedding implementation working, and we'll be pursuing that avenue for v1 so I'm going to close this out.