Overview
The CMU Courses project has three layers:
-
courses-scraperpulls course information, sections, program audits, and syllabi from Stellic and Canvas. Output lands underexported/as JSON files keyed by course code, program, and term. -
courses-indexloadsexported/into a single binary catalog with text, facet, numeric, and schedule indexes baked in. The same crate compiles to native (for the build step that producescatalog.bin) and to wasm (for the browser query engine). -
Two APIs consume the catalog:
courses-apiis the public REST surface (versioned under/v1/, in-memory, no database), andcourses-web-apiis the web app’s backend, which serves the SPA bundle and the catalog binary to the browser on a single origin.
The scraper section below documents the per-source collection logic. The courses index section documents the on-disk catalog format and the query engine.