Making course management easier with the new Canvas Course Manager
Melinda Kraft
Samuel Sciolla
Pushyami Gundala
What is CCM and why we built it?
Permissions
LMS Transition
Instructors and Admins
CCM Features
Problems
Elevated Token Usage
Old LTI version
Two Tools
ol
Older Stack
Project Goals
Open Source
New Technology Stack
Better UX and Fully Accessible
Stakeholder involvement
Feature parity
Demo
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
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
Performance
1 server
4 threads
<=2 pods
With async event loop
UX & Accessibility: Some lessons learned
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
Project Team
Questions