Skip to content

InquiryInstitute/imscc_template

Repository files navigation

imscc_template

Course skeleton for building a Canvas Common Cartridge (.imscc) with imscc_mcp. Content lives in folders (lectures/, assignments/, …); Cursor rules in .cursor/rules/ tell agents how to populate them.

Layout

Directory Purpose
course/ meta.json (title, ids, absolute output_directory), assignment_groups.json, optional syllabus.html (IMS syllabus)
lectures/ One folder per lesson → wiki page + optional slides/ + attached_files
assignments/ One folder per assignment → assignment.json + optional HTML instructions
rubrics/ One .json file per rubric (skip _template.json)
modules/ sequence.json → module order and items (Wiki, Assignment, URL, Attachment, Discussion)
discussions/ Optional discussion topics
assets/files/ Optional shared files (see README there)
scripts/ assemble-spec.mjs; google-slides-from-md.mjs; build-all-slides.mjs / export-slides-pdf.mjs / review-slides-pdf.mjs; gh-classroom-repos.mjs
course/github-classroom.json Optional — GitHub org + defaults for Classroom / starter repos (see docs/GITHUB_CLASSROOM.md)
examples/ Standalone JSON examples (bypass assemble)
docs/AUTHORING.md Full authoring reference
docs/MYST.md MyST Markdown baseline for content.myst.md, instructions.myst.md, body.myst.md
docs/POPULI.md Populi import: webcontent + QTI assessment often skipped; --populi omits both

Quick start

  1. Set course/meta.jsonoutput_directory to a real absolute path.
  2. npm install once (Google Slides + GitHub scripts).
  3. Optional — Google Slides: node scripts/google-slides-from-md.mjs --lecture lectures/01-welcome, or npm run slides:build + npm run slides:review-pdf (see docs/GOOGLE_SLIDES.md, docs/SLIDES_PDF_REVIEW.md). npm run build:with-slides = slides + assemble.
  4. Optional — GitHub Classroom / Codespaces: course/github-classroom.json + npm run gh-classroom (see docs/GITHUB_CLASSROOM.md).
  5. mkdir -p build && node scripts/assemble-spec.mjs > build/spec.json
    Populi: add --populi (see docs/POPULI.md).
  6. From imscc_mcp:
    bundle exec ruby ruby/build_cartridge.rb < /path/to/imscc_template/build/spec.json

Cursor

Open this repo as the workspace. Rule imscc-workflow.mdc is always applied (including generate-from-title order: title → description → rubrics → lectures → assignments → tests → modules, then assemble/build). Globs attach for path-specific authoring—e.g. imscc-syllabus.mdc for course/syllabus.html, imscc-rubrics.mdc for rubrics/, imscc-myst.mdc for *.myst.md, github-classroom-lti.mdc for Classroom + LTI + autograding grade alignment, plus lectures/, assignments/, etc.

Fork per course (recommended)

Do not clone the template directly for a real course. Fork it on GitHub, then clone your fork. That way you can merge upstream whenever the template gains new .cursor/rules, scripts/, or docs/.

git remote add upstream https://github.com/InquiryInstitute/imscc_template.git
git fetch upstream && git merge upstream/main

Details: docs/FORKING.md.

Links

License

MIT

About

JSON templates for Canvas Common Cartridge builds (imscc_mcp)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors