LMS Toolkit

The EduLinq LMS Toolkit is a suite of tools used by several courses at UCSC to interact with LMS’s (e.g. Canvas) from the command line or Python. A Learning Management System (LMS) is a system that institutions use to manage courses, assignments, students, and grades. The most popular LMSs are Canvas, Blackboard, Moodle, and Brightspace. These tools can be very helpful, especially from an administrative standpoint, but can be hard to interact with. They can be especially difficult when instructors and TAs want to do something that is not explicitly supported by their built-in GUIs (e.g., when an instructor wants to use a special grading policy). The LMS Toolkit project is an effort to create a single suite of command-line tools (along with a Python interface) to connect to all the above mentioned LMSs in a simple and uniform way. So, not only can instructors and TAs easily access the modify the data held in an LMS (like a student’s grades), but they can also do it the same way on any LMS. The LINQS Lab has made many contributions to the maintain and improve the Quiz Composer.
Currently, the LMS Toolkit supports Canvas, Moodle, and Blackboard. But, the degree of support for each LMS varies.
All students interested in LINQS projects for OSRE/GSoC 2026 should fill out this form. Towards the end of the application window, we will contact those who we believe to be a good fit for a LINQS project. The form will stop accepting responses once the application window closes. Do not post on any of the project repositories about OSRE/GSoC (e.g., comment on an issue that you want to tackle it as a part of OSRE/GSoC 2026). Remember, these are active repositories that were not created for OSRE/GSoC.
Advanced LMS Support
- Topics:
BackendTeaching ToolsAPI - Skills: software development, backend, rest api, data munging, http request inspection, python
- Difficulty: Moderate
- Size: Medium or Large (175 or 350 hours)
- Mentors: Eriq Augustine, Batuhan Salih, Lise Getoor
The LMS Toolkit already has basic read-write support for many core pieces of LMS functionality (e.g., working with grades and assignments). However, there are still many more features that can be supported such as group management, quiz management, quiz statistics, and assignment statuses.
The task for this project is to choose a set of advanced features (not limited to those features mentioned above), design an LMS-agnostic way to support those features, and implement those features. The flexibility in the features chosen to implement account for the variable size of this project.
See Also:
- Repository for LMS Toolkit
- GitHub Issues
New LMS Support: Brightspace
- Topics:
BackendTeaching ToolsAPI - Skills: software development, backend, rest api, data munging, http request inspection, python
- Difficulty: Challenging
- Size: Large (350 hours)
- Mentors: Eriq Augustine, Batuhan Salih, Lise Getoor
The goal of the LMS toolkit is to provide a single interface for all LMSs. D2L Brightspace is one of the more popular LMSs. Naturally, the LMS Toolkit wants to support Brightspace as well. However, a challenge in supporting Brightspace is that it is not open source (unlike Canvas and Moodle). Therefore, support and testing on Brightspace may be very challenging.
The task for this project is to add basic support for the Brightspace LMS. It is not necessary to support all the same features that are supported for other LMSs, but at least the core features of score and assignment management should be implemented. The closed-source nature of Brightspace makes this a challenging and uncertain project.
See Also: