-
Automating Canvas LMS Avatar Uploads with PowerShell
Hello Instructure Community, I was tasked with scripting our Canvas avatar uploads. After a good few weeks of work, I have a solution that I hope will assist others in doing the same. Here is how it works: The script queries your Canvas instance for users and looks for a local image file that matches their SIS ID. It looks…
-
Bulk Gradebook Export (Hacky)
During the recent breach incident with Canvas I put together a quick and dirty tool to bulk export gradebooks from courses in CSV format. This was put together in an evening and is very hacky but it does seem to work. The gradebook export functionality is not exposed via the regular API. This acts as a headless client to…
-
User-Generated Token Expiration Management Tool
I've been unable to find any mechanisms to enforce user-generated token policies such as expiration dates within Canvas, and have written a tool to fill in for some of these shortcomings. It is intended to be run on a regular basis and performs the following actions: Identifies all user-generated tokens with no expiration…
-
Accessibility Checker "Update Report" Automation
Hello, I wanted to document something I found while trying to automate the Canvas course Accessibility report scans: After checking the Network tab under Chrome's DevTools, I found that pressing the "Update Report" button does not call a normal Canvas API route under /api/v1/. Instead, it calls an internal Canvas route…
-
Living Syllabus: A "CI/CD" Workflow for Canvas Content Management
We all know the specific frustration of the "Syllabus Sprawl." You spend weeks designing a beautiful course page in the Rich Content Editor (RCE), but the moment you copy it to next semester’s shell, the formatting drifts. Links break. Styles revert. Worst of all, if you discover a typo in your policy section, you have to…
-
Canvas API - Postman collection generator
Building upon the work and ideas from this original post: https://community.canvaslms.com/t5/Developers-Group/Postman-Canvas-API-collection/bc-p/656947#M1578 I have created a GH repo that will programmatically generate a Postman collection based upon the latest Canvas API docs found…
-
User Script to Provide Course Readiness and Teacher Activity Reminders
This is a user script that provides course readiness and teacher activity reminders based on the configured expectations. Expectations that can be configured include checks for the Syllabus, published state of the course, course dates, assignment due dates, posting announcements, and timely grading. If an expectation is…
-
User Script to Bulk Copy Course Announcements
This is a user script that allows teachers to bulk copy announcements from one of their courses to another course(s). This process will create the announcements as the user using the script so the copied announcements will also show them as the author of the announcement rather than it showing as an unknown author. This…
-
User Scripts to Add an Additional Identifier to User Names in Various Areas
These user scripts will add in an additional user identifier, such as their email address, in places that only show their name to help differentiate users. This is especially useful for classes where students have the same name. To use the user scripts, you will need to use a tool for loading user scripts (such…
-
Enhanced To Do List (Ungraded submissions) - Chrome Extension
This extension displays a comprehensive list of your ungraded submissions from all of your courses in Canvas LMS, featuring: ☰ Filter: Customise your view by excluding specific roles (e.g., TA role) or focusing on particular criteria (e.g., ungraded submissions older than 7 days). 🔽 Sort: Organise submissions in any order…
-
User Script to Auto-Expand Threads on Discussion Boards
This is a user script to automatically click the expand threads button when going to a discussion board. It will also click the expand threads button when going to a new page of replies. To use the user script, you will need to use a tool for loading user scripts (such as TamperMonkey Chrome Web Store Listing) or add it as…
-
User Script to Bulk Update Threaded Reply Setting of Discussions in Courses
I have developed a user script that will allow an Account Admin user or teacher with the appropriate permissions to update the threaded reply settings of discussions in a course in bulk. To use the user script, you will need to use a tool for loading user scripts (such as TamperMonkey Chrome Web Store Listing) or add it as…
-
Sub-account hierarchy visualiser for Canvas LMS
Sharing a small admin tool I wrote in Python that is able to render sub-account hierarchies for the Canvas Learning Management System in the form of a tree graph. You’re also able to export the raw JSON for the graphs and chuck them into any data visualisation platform of your choice. I’m hoping this will come in handy for…
-
User Script to Bulk Publish Courses
I have developed a user script that will allow an Account Admin to bulk publish courses from the admin account course search page. Using the course search before opening the bulk publish dialog will help narrow down the unpublished courses that can be loaded in to review for publishing. This will also work on the course…
-
User Script to Bulk Update Enrollment States in a Course
I have developed a user script that will allow an admin user or teacher with the appropriate permissions to update the enrollment states of enrollments in a course in bulk. By default, enrollments associated with an SIS Import will not be loaded in as options to update. This user script is inspired by the Bulk Remove…