LMS Toolkit

The EduLinq LMS Toolkit (also called the “Canvas Tool” or “py-canvas”) is a suite of tools used by several courses at UCSC to interact with 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 only supports Canvas, but this suite of projects hopes to not only expand existing support, but add support for more LMSs.
Advanced Canvas Support
- Topics:
Backend
Teaching Tools
API
- 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 core Canvas functionality (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 implement chose of set of advanced Canvas features to support (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: Moodle
- Topics:
Backend
Teaching Tools
API
- Skills: software development, backend, rest api, data munging, http request inspection, python
- Difficulty: Moderate
- 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. It is a lofty goal, however there is currently only support for Canvas. Moodle is one of the more popular LMSs. Naturally, the LMS Toolkit wants to support Moodle as well. Moodle is open source, so adding support in the LMS Toolkit should not be too challenging.
The task for this project is to add basic support for the Moodle LMS. It is not necessary to support all the same features that are supported for Canvas, but at least the core features of score and assignment management should be implemented.
See Also:
New LMS Support: Blackboard
- Topics:
Backend
Teaching Tools
API
- 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. It is a lofty goal, however there is currently only support for Canvas. Blackboard (also called “Blackboard Learn”) is one of the more popular LMSs. Naturally, the LMS Toolkit wants to support Blackboard as well. However, a challenge in supporting Blackboard is that it is not open source (unlike Canvas). Therefore, support and testing on Blackboard may be very challenging.
The task for this project is to add basic support for the Blackboard LMS. It is not necessary to support all the same features that are supported for Canvas, but at least the core features of score and assignment management should be implemented. The closed nature of Blackboard makes this a challenging and uncertain project.
See Also:
New LMS Support: Brightspace
- Topics:
Backend
Teaching Tools
API
- 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. It is a lofty goal, however there is currently only support for Canvas. 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). 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 Canvas, but at least the core features of score and assignment management should be implemented. The closed nature of Brightspace makes this a challenging and uncertain project.
See Also:
Testing / CI Infrastructure
- Topics:
Backend
Teaching Tools
Testing
CI
- Skills: software development, backend, testing, ci, docker
- 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. This means that our system must communicate with several different (the LMSs), each with their own systems, data patterns, versions, and quirks. Testing will be essential to ensure that our tools keep working as the different LMSs evolve and update. The LMS Toolkit currently tests with Canvas by mocking API responses. However, this tactic does not scale well with multiple LMSs (and multiple versions of each system). A more scalable approach would be to have test instances of the different LMSs that our testing infrastructure can interact with both interactively and in continuous integration (CI).
The task for this project is to create testing infrastructure that connects to test instances of different LMS systems (e.g., Canvas). This task does not require that all the LMSs in this document are used, but the testing infrastructure should be robust enough to support them all. The open source LMSs (Canvas and Moodle) will likely be much easier to setup than the others, and should be targeted first. We should be able to run tests locally as well as in CI, and will likely heavily use Docker containers.
See Also: