Overview
In summer 2023, I worked with Professor Steve Matsumoto at Olin College to create
Easel, a git-like command line tool that streamlines workflows
in Canvas courses. As the sole researcher on this project, I assessed faculty pain points,
designed new workflows, and built an MVP tool.
Canvas lacks features such as copying quizzes or bulk-updating assignment dates between semesters.
Faculty often spend hours recreating or adjusting course materials. Easel addressed
these problems by representing Canvas resources in Markdown and using familiar
git-style commands (create, push, pull)
for simple, repeatable workflows.
The result was a working MVP that reduced repetitive Canvas workflows and laid the foundation for a more efficient faculty tool.
My Contributions
- Surveyed Olin faculty to identify core Canvas pain points (quiz duplication,
course date migration, assignment updates).
- Designed a Markdown format for Canvas resources, where each resource is a
self-contained file with metadata:
# [name of resource]
[description of resource]
## Metadata
[list of metadata variables]
- Developed the
EaselDoc class to parse, standardize, upload,
and download resources from Canvas.
- Implemented initial commands:
easel create, easel push, easel pull.
- Created a generalized JSON Academic Calendar format (ISO-8601 with cycle-based
extensions) to support flexible date shifting.
Proof of Concept: Date Transfer
As an early step, I built a standalone utility to transfer assignment due dates
between semesters. This introduced me to the Canvas API and addressed a
major faculty frustration. Work is available on the
date-transfer branch.
Outcome
By the end of the summer, I had developed a functional Easel MVP.
Faculty could now create, update, and copy Canvas resources more efficiently,
saving hours of manual work each semester. The system laid the groundwork for
advanced features like relative date representations beyond fixed datetime strings.
For full project details, see the
README.