Case Study: Enhancing Credly's Canvas Integration

Learn how we automate and manage digital badging within Canvas LMS, save faculty time, and enhance learners’ engagement with our efficient, integrated tools.

Impact

Project Overview

Credly’s integration with the Learning Management System (LMS), Canvas, was aimed at automating the issuance of Credly badges based on student performance metrics. In essence, the integration equipped Canvas instructors with the ability to design rules in Credly, linked with Canvas assignments/modules. Subsequently, a badge would be issued whenever a student achieved a predetermined score on the assigned task or a combination thereof.

Technology

Backend
Ruby on Rails, ActiveJobs, LTI v1, Canvas API 70%
Frontend
React, Redux 30%

Challenges Encountered

Data Synchronization

Canvas provides an API to fetch all student information but lacks an API endpoint or web hook for real-time notification of new student additions. This necessitated periodic data fetches from every page of the Canvas instances’ student API endpoint, followed by comparison with students already logged in the database, to update student data.

Module Completions

Determining module completions presented an additional challenge as we couldn’t fetch modules based on their completion status. Instead, we had to fetch modules per student, which resulted in an n+1 request issue.

Assignment Submissions

On a brighter note, we could request assignment data from a submissions endpoint, filtered by the submission time in descending order. This gave rules, hinged on assignments, superior performance, despite issuance being hindered by student existence.

Implemented Optimizations

Debugging Complexities and Solutions

In the course of our work, we encountered instances where some students who had fulfilled all rule requirements did not receive their badges as expected. The intricate nature of our system made it difficult to identify the source of these failures. For instance, while runtime errors that occurred during individual tasks could easily be traced using Rollbar, an error tracking tool, these errors generally affected the entire Canvas instance. On the other hand, failures to award badges to specific students were far more nuanced and required a more detailed examination. In response to this challenge, a dedicated script was created to perform a series of tests on a collection of student emails. The primary question we sought to answer was: What distinguished this specific student that obstructed their badge receipt?
The script's operation was as follows:
The main objective of the script was to execute a thorough walkthrough of every Canvas API request linked to the specified students. This enabled us to determine whether the issue lay in the data output from Canvas or how we processed that input. In essence, our debugging strategy ensured that all relevant data was accurately fetched and processed, significantly simplifying the troubleshooting process.

Key Takeaways

Are you looking for a seasoned professional to join your development team? Does your startup crave the expertise of a technical co-founder? Let’s get in touch!

Scroll to Top