canvas-ledger¶
A local, queryable ledger of Canvas LMS metadata for historical analysis.
Why canvas-ledger?¶
Canvas LMS is effective for answering questions about the current state of a course. But it's poor at answering historical questions:
- What courses was I involved in three years ago, and in what capacity?
- When did a student drop a course, and what was their status before dropping?
- Who was the lead instructor for a co-taught course?
- How has a student's performance changed across semesters?
canvas-ledger gives instructors a durable, local, queryable historical record of Canvas metadata—independent of Canvas's retention policies, UI limitations, and API constraints.
Key Features¶
- Local-first: Single SQLite database you own and control
- Historical accuracy: Tracks changes over time (adds, drops, grade changes)
- Dual-truth model: Preserves Canvas data exactly as reported, while allowing your annotations
- CLI-first: Scriptable, composable commands with JSON/CSV output
- Incremental ingestion: Safe to run repeatedly without duplicating data
Quick Example¶
# Configure and initialize
cl config init
cl db migrate
# Ingest your Canvas courses
cl ingest catalog
# See your involvement timeline
cl query my-timeline
# Deep ingest a specific course
cl ingest offering 12345
# Query the roster
cl query offering 12345
Getting Started¶
See the Quickstart guide to get up and running.
Documentation¶
- Concepts — Understand the dual-truth model and design principles
- Data Model — Database schema, file locations, and what gets tracked
- Quickstart — Install, configure, and run your first queries
- Workflows — Common usage patterns by time of semester
- CLI Reference — Complete command documentation