ARC-Lab-UF / testbench-runner

Interactive testbench runner via Modelsim. Integrates with Canvas assignments.
2 stars 1 forks source link

Use Canvas API to automatically download submissions #31

Open benjamin051000 opened 1 year ago

benjamin051000 commented 1 year ago

Something like https://github.com/ucfopen/canvasapi

here's a simple example that appears to work:

# Import the Canvas class
from canvasapi import Canvas
# Canvas API URL
API_URL = "https://ufl.instructure.com"
# Canvas API key
API_KEY = "private key here"

def main():
    canvas = Canvas(API_URL, API_KEY)
    print(canvas.get_course(472360))

if __name__ == '__main__':
    main()

This opens many possibilities up:

benjamin051000 commented 1 year ago

And, it could post their grade automatically (assuming nothing went wrong). All TAs would have to do is intervene with students that didn't score 100%

benjamin051000 commented 1 year ago

For full automation, we would need some way to listen for when a student submits their assignment. The tool could receive that event or listen for it, then download the submission, grade it, and post the grades.

If there are issues (e.g., compile issue or < 100% score), the TA could be notified via email or something that they need to log in and manually grade that student's assignment.

benjamin051000 commented 1 year ago

This will definitely require #10 , since that separates each student's submission into its own modelsim project, allowing for greater flexibility, including this idea.