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