I have a LTI app and I would like to implement Grade Passback. I would like to pass:
A) A grade for an assignment;
B) Text containing points and textual feedback for all bullet points questions that the app provides.
I am developing this in Node.js using the ims-lti library for handling authentication. I can pass grades and feedbacks from the front-end (which implements a rubric that teachers use to evaluate the assignment) to the Node.js server through json. The text I want to return would look like:
Criterion 1: 5 pts. You understood the main content of the text.
Criterion 2: 10 pts. Your spelling is excellent
Criterion 3: 0 pts. You did not discuss the author's thesis
..
I tried to understand how to implement this by studying the module "Grade Passback" from the second section of the Dev and Friends course, but I got stuck (in particular how to sign it). I see a couple of posts where Grade Passback is discussed. Here James Jones suggested to use the Submission's API. Here there is an example, but in Java.
On the other hand the Dev and Friends course, these docs and this post answered by Garth Egbert adopt the XML approach. From the docs it sounds to me that the resultData
node could take care of my feedbacks in point 2 above. Is that correct?
My questions are:
1) Am I right about returning my feedback in point B using resultData
the XML approach? If so, I am curious to hear where they will be visible in Canvas.
2) Can I pass back textual feedback in point B using the API approach? In that way I hope to circumvent my lack of understanding of OAuth header signature in the XML approach (next point).
3) Any pointer on how to make the XML approach, in particular about signing? Do you know of any example in Node.js?
4) Can i do anything similar but at the Quiz level? I think this is a similar enhancement request.
Thank you in advance
If you go with (B), the text will show up under Submission Details, for example:
If you want to try yourself, our test tool at https://lti.netkno.nz/tp supports the Canvas Data Return Extension types: text, URL and LTI. You can use the tool with myschool.edu / letmein
The Node.js ims-lti supports standard grade passback (eg, there is a code example at https://community.canvaslms.com/message/107883-re-hire-an-lti-consultantfreelancer?commentID=107883#comment-107883). It does not have the Canvas extensions, but you might be able to work out how to add these by looking at the ims-lti code. Just alter where they generate the XML, pass in your text as well as the score and the ims-lti code should take care of the rest.