prog-edu-assistant icon indicating copy to clipboard operation
prog-edu-assistant copied to clipboard

Support LTI tool invocation flow

Open salikh opened this issue 4 years ago • 1 comments

The autograder can be integrated as an LTI tool, i.e. a web application that is registered with an LMS (Learning Management System), that is formally added as an assignment to students. User flow can look like this:

  • The LMS admin adds autograder instances as an LTI tool to LMS
  • The course facilitator creates the assignments and adds links to specific units to a course in LMS
  • Students click on the links in the course in their LMS and open the Python programming assignment in Colab
  • The autograder grades the submissions and records the results back to LMS

A specific more technical description of the HTTP requests flow on LTI tool launch (based on limited understanding of LTI 1.3, so details may not be correct)

  • The student clicks on a link that goes to autograder server. The request includes student ID, role and the assignment ID ("line item" in LTI speak)
  • The autograder records the assignment ID and student ID in the user session and initiates authentication with LMS OAuth provider flow to obtain a bearer token
  • The autograder responds to the student request by redirecting them to Colab notebook with an assignment. Ideally it should pass the authentication token to Colab, but since templating feature in Colab is currently disabled for security reasons, it's more likely the autograder will need to show a page with token with an instruction to copy token, click on the Colab link, then paste the token inside of Colab notebook
  • On notebook submission, the student should indicate whether their submission is intermediate checkpoint or final submission
  • After grading a final submission, the autograder may submit grades back to LMS, using the line item, user ID and authentication token recorded in the user session.

salikh avatar Nov 27 '19 00:11 salikh