CSCI128 / 101GradingScript

Script designed to move grades between Gradescope and Canvas
https://gradingscript.trihardstudios.com/#/
0 stars 0 forks source link

[ENHANCEMENT] Add support to create and override assignment mapping #37

Open gregbell26 opened 2 years ago

gregbell26 commented 2 years ago

Description

For certain classes, assignments are created on an as-needed basis (ACM / ACM-W Attendance for 101) or updated in new assignments (A07A vs A072022 for 102), and there doesn't currently exist a way to elegantly handle these cases when selecting the assignments to grade.

Issue

Currently, the workaround for this involves creating a new config file after the assignment has been created on Canvas via the web interface. This is really time-consuming and not a good user experience. It is also annoying to have to interrupt the workflow to create a new assignment in Canvas or not have to re-pull the entire config file when a new assignment is created in Canvas in the 102 workflow.

Suggestion

https://canvas.instructure.com/doc/api/assignments.html#method.assignments_api.create

The Canvas API supports creating assignments with the assignments module for the API, it also supports pulling a single assignment with nothing but the course ID and the assignment ID.

For the case where the assignment exists on Canvas but not in the config file, a solution would be to prompt the user if they would like to override the warning when an assignment could not be found in the config file and then ask if the assignment already exists on Canvas, and if so, what the ID is to solely update the config file to add the assignment in.

In the case where the assignment does not yet exist, a solution would be to walk the user through creating a new assignment. This would include the assignment name, the points on the assignment, and the group that the assignment should be assigned to.

Acceptance Criteria

gregbell26 commented 2 years ago

This issue has been prioritized and will be worked on as part of the next sprint (date TBD). This issue is 5 story points.