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

Change Proposal: Assignment and Grades Service #3

Open
lf- opened this issue Aug 28, 2021 · 0 comments
Open

Change Proposal: Assignment and Grades Service #3

lf- opened this issue Aug 28, 2021 · 0 comments

Comments

@lf-
Copy link
Owner

lf- commented Aug 28, 2021

Requires #2.

AGS spec: https://www.imsglobal.org/spec/lti-ags/v2p0/

What does AGS do? It provides:

  • Line Item management [POST/GET] (you can create new line items in the gradebook). We don't care about this.
  • Scores [POST] (put scores into the gradebook at some given entry). We care about this.
  • Results [GET] (get results (after human intervention such as giving zeros or whatever) from the gradebook). We don't care about this, I don't think.

AGS adds, over Basic Outcomes, the ability for tools to add line items and have multiple line items per link. We don't care about this, I don't think. Certainly not initially. It still does the same thing as Basic Outcomes, which is POSTing scores back, one per resource link.

So basically the way I am thinking this will work is:

  1. Use deep linking to create an assignment on the Modules page in Canvas, which will associate a gradebook entry in the deep linking reply message from the tool. On the return trip from this creation, the platform will have the gradebook entry fully set up with the max score, deadline, etc.
  2. When the student does things, we update the platform on it. This may need a background work queue system in Carnap.

Unresolved Questions

  • How to use the domain types of gradingProgress and activityProgress in the context of Carnap. Not a big huge concern for writing a library for now, but it needs to be figured out (I am particularly unfamiliar with the manual-intervention bits of Carnap grading): https://www.imsglobal.org/spec/lti-ags/v2p0/#activityprogress
  • Do we need to store userId or can we derive this from the ident (is that evil?)
  • Do we actually need a background work system? (it seems like a good idea to avoid blocking user requests on stuff they don't have to wait for)
  • Seems we have to implement some OAuth2 thing, section 4.1.1 or 4.2.1 of the LTI Security Framework and it is kinda unclear which one we need. Either way, we do need to cache tokens for our platforms.
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

1 participant