1 of 13

Making course management easier with the new Canvas Course Manager

Melinda Kraft

Samuel Sciolla

Pushyami Gundala

2 of 13

What is CCM and why we built it?

Permissions

LMS Transition

Instructors and Admins

3 of 13

CCM Features

4 of 13

Problems

Elevated Token Usage

Old LTI version

Two Tools

ol

Older Stack

5 of 13

Project Goals

Open Source

New Technology Stack

Better UX and Fully Accessible

Stakeholder involvement

Feature parity

6 of 13

Demo

7 of 13

Design goals

Use Canvas

permissions

Canvas OAuth

Scoped tokens

Modern, performant, reliable

NodeJS

Type-

Script

Snappy, accessible UI

React

Material UI

One tool version

LTI 1.3

Role-

based features

8 of 13

Architecture

MySQL DB

React, Material-UI Webpack

NestJS

CCM Architecture

LTI 1.3,

OpenShift Container Platform on AWS

Web server (Express/NestJS)

MySQL database

on AWS host

OpenShift Container Platform (ITS)

Client (React) in browser

REST API

Auth layer (cookie)

Canvas

OAuth

LTI

Cirrus Identity

Token

9 of 13

Performance

  • Utilize JavaScript features (async) and a queue library to quickly make hundreds of API calls without hitting rate limits
  • Maximize resources by running multiple server threads per container (using pm2), and handle additional load using autoscaling

1 server

4 threads

<=2 pods

With async event loop

10 of 13

UX & Accessibility: Some lessons learned

  • Consistency is key (UX).
  • Tasks need clear confirmation and success messages when they are completed (UX).
  • Controls must be usable via keyboard (e.g. Tab/Enter), with visible focus (A11y).
  • Descriptive aria-label attributes, use of aria-live attributes to announce changes, and table captions improve the screen reader experience (A11y).
  • Nesting elements is preferred over overriding original element semantics with role attributes (A11y).

11 of 13

Outcomes and Benefits

Collaboration between 3 ITS Teams (DUX/TL/DISC)

Fully Secure, Usable and Accessible product

Smooth adoption

Successful delivery of New Technology stack

12 of 13

Project Team

  • Pushyami Gundala, ITS Teaching & Learning
  • Janel Ilar, ITS DUX
  • Matthew Jones, ITS Teaching & Learning
  • Melinda Kraft, ITS Teaching & Learning
  • Zhen Qian, ITS Teaching & Learning
  • Chris Rowland, ITS DISC
  • Samuel Sciolla, ITS Teaching & Learning
  • Gonzalo Silverio, ITS DUX
  • Lance E. Sloan, ITS Teaching & Learning
  • Brandon Werner, ITS DUX

13 of 13

Questions