Hi all,
I’m new to Open edX, and I’d love to hear your opinion about a feature our company requires, that we’re considering to propose to the Open edX codebase.
I would like to know if you think other parties might be interested in such a feature, and whether I should start deep-diving into the code and preparing the pull request process, or if the idea is doomed to begin with!
Our product consumes information about courses, students and grades from an Open edX company/app, and the only thing missing from the built-in API is the ability to get student grades for each problem block.
Currently, the lowest possible level is grades for a vertical, but we need this information at the problem level.
What we require is the raw score, coupled with the question’s max possible score (it would be best to get the max possible score from a separate API, but we can settle for this approach as well:).
The score should be included with the problem’s block ID and the responding user’s username, because that’s the best identifier we can get from the rest of the API (no user IDs are sent in any form).
Side note: I’m not sure if the username issue is specific to our “provider” or not, but if so - then we would want to have the ability to specify to the API what info about the user we want to get (in this case - username).
The endpoint should receive a course (or ccx) ID, and return the grades for all the problems and for each student.
Optionally it can receive a student ID/username/email and return only their grades.
Getting the actual user response itself (i.e. the content of the answer) will be a blessed bonus, but not a must.
Assume that the mentioned company is reluctant to develop a new endpoint just for us, because of future maintenance that will probably be required by them, and they object enabling xAPI solely for this purpose.
And even if they agreed to go with the xAPI - this can be problematic. Assuming we’re okay with having to maintain data retrieval from 2 vastly different sources, it will be problematic in edge cases where for some reason, perhaps a bug, a response/evaluated event didn’t get to the LMS, or alternatively we didn’t get it on time before it expired. In such cases, our data will be partial, and being a dashboard app - that’s the last thing we want. We need to represent the state of a course exactly as it is/was, so the users can make educated decisions.
We’ll also have no way of knowing that an event is missing…
What are your thoughts?
I’ve already encountered someone in the forums that asked for the same thing…
Thanks a lot in advance!
Dor.