Domain corePer-course isolation0 live course brains
Course brains are the product.
The platform is only useful if each course feels sealed, legible, and ready for teacher control. This page shows the live course inventory already written through the backend.
Course brain
Each course carries its own assets, chunks, threads, and policy pack.
Join-code lane
Student entry stays explicit and revocable through domain-owned codes.
Membership edge
Teacher and learner roles stay separated from the first DB write.
Policy boundary
Pedagogy and direct-answer rules belong to the course, not a global toggle.
No courses exist yet. Create the first course brain on the dashboard, then return here to inspect the full teacher inventory.
Canonical relationship
The live implementation still follows the invariant exactly: teacher to many course spaces, then course-owned assets, memberships, threads, and analytics artifacts.
teacher_id
-> course_spaces
-> course_join_codes
-> course_memberships
-> source_assets
-> chat_threads
-> assessment_items
-> student_concept_state