# 1. Academic Course Management

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*

---

## 1. Academic Course Management

### 1.1 Create, Edit, and Delete Academic Courses
**What it does:** Manages academic courses as first-class entities: the Super Administrator creates an academic course with its identity and details, edits it as it evolves, and deletes or archives it when it is no longer offered. Academic courses are the teachable units that sit within the board → grade → subject structure and carry the content units learners work through.

**Sub-features:**
- Create an academic course: title, description, and the board/grade/subject it belongs to
- Edit a course's details (title, description, structure)
- Delete or archive a course (archive preferred where enrollments exist)
- Course list with status, structure placement, and enrollment counts
- Dependency check before delete: courses with enrollments are flagged for archive
- Course status: draft, published, archived (see Course Status Management)
- Audit logging of course create/edit/delete

**Super Administrator User Journey:**
1. A new academic course is needed for Cambridge Grade 10 Mathematics. Super Admin opens Course Management → Academic and creates the course: title, description, and its placement (Cambridge → Grade 10 → Mathematics).
2. Saves; the course appears in the list as a draft under its structure node, ready for content assignment.
3. Later, the course description is refined (a clearer scope statement). Super Admin edits and saves; the change is recorded.
4. For a course no longer offered (a syllabus change), Super Admin reviews its dependency: active enrollments exist.
5. Because enrollments exist, deletion is not offered cleanly; Super Admin archives the course. It becomes unavailable for new enrollment, but existing learners' progress and history remain intact.
6. For a draft course created in error with no content or enrollments, Super Admin deletes it; the dependency check passes and the course is removed.
7. Reviews the course list: the courses with their status, structure placement, and enrollment counts, so the catalog state is clear.
8. Each course create, edit, archive, and delete is audit-logged with the acting admin and timestamp.

**Rules & Edge Cases:**
- An academic course belongs to a board → grade → subject node; the placement is set at creation and is its context.
- A course with enrollments is archived, not deleted; deletion is reserved for courses with no dependencies.
- Archiving stops new enrollment but preserves existing learners' progress and history; it is reversible.
- The dependency check runs before delete and blocks it with the specific reason where dependencies exist.
- Course status (draft/published/archived) governs availability (see Course Status Management).
- All course changes are audit-logged with the acting admin and timestamp.

### 1.2 Structure Courses Under Board → Grade → Subject
**What it does:** Places each academic course within the curriculum hierarchy (board → grade → subject) so it is organized, discoverable, and board-appropriate. The Super Administrator assigns the course's structure placement at creation and can review or correct it, ensuring the course appears in the right board context and is surfaced to the right learners.

**Sub-features:**
- Structure placement: the course's board, grade, and subject (set at creation)
- Placement validation: the board/grade/subject nodes must exist and be active
- Structure view: courses listed under their board → grade → subject node
- Board-appropriate surfacing: a course appears in its board's context for its grade/subject
- Placement correction: moving a course to the correct node where it was misplaced
- Consistency: a course has one structure placement (no ambiguous context)
- Audit logging of placement changes

**Super Administrator User Journey:**
1. Creating a course, Super Admin selects its structure placement: the board (Cambridge), the grade (Grade 10), and the subject (Mathematics) from the existing curriculum nodes.
2. The placement is validated: the nodes exist and are active; an inactive or missing node is flagged and cannot be selected.
3. Saves; the course is placed under Cambridge → Grade 10 → Mathematics and appears in that node's course list.
4. Reviews the structure view: the courses under the node, confirming the course is where it should be.
5. For a learner in Cambridge Grade 10, the course is surfaced in their board context (their grade and subject), not in another board's context.
6. For a course misplaced at creation (assigned to the wrong grade), Super Admin corrects the placement to the right node; the change is recorded and the course moves in the structure view.
7. Checks consistency: the course has exactly one structure placement; there is no duplicate or ambiguous context.
8. The placement change is audit-logged with the course, the from/to nodes, and the timestamp.

**Rules & Edge Cases:**
- A course has one structure placement (board → grade → subject); the context is unambiguous.
- Placement nodes must exist and be active; an invalid node cannot be selected.
- Board-appropriate surfacing is enforced: a course appears in its board's context, not another board's.
- A placement correction moves the course to the right node; existing enrollments are handled per the correction's impact (reviewed before the move).
- The structure view shows courses per node, so a misplacement is visible.
- Placement changes are audit-logged with the course, from/to nodes, and timestamp.

### 1.3 Assign Content Units to Courses
**What it does:** Populates a course with its content units: the Super Administrator assigns the lessons, topics, and materials (from the content and curriculum structure) to the course, in the intended order, so the course has the learning material its learners will work through. Assignment connects the course (the teachable unit) to the content (the material) and the curriculum topics (the structure).

**Sub-features:**
- Assign content units to a course (lessons, topics, materials)
- Ordering: the content units are sequenced within the course
- Mapping to curriculum topics: content units can map to the subject's topics
- Coverage view: the course's content per topic, so gaps are visible
- Reordering and replacement of content units
- Readiness: a course is ready to publish when its content is complete
- Audit logging of content assignment changes

**Super Administrator User Journey:**
1. For a draft course, Super Admin assigns its content units: the lessons and materials for each topic, in the intended order.
2. Sequences the units so the learning order is correct (foundations before advanced material, matching the topic progression).
3. Maps the content units to the curriculum topics, so the course's material aligns to the subject's structure.
4. Reviews the coverage view: each topic shows its assigned content; a topic with no content is a visible gap.
5. Closes the gaps by assigning the missing content (or routing it to the content owners if it does not exist yet).
6. For a content update (a lesson revised), replaces the content unit in the course; the learners see the updated material.
7. Confirms readiness: the course's content is complete and sequenced, so it is ready to move to publish (see Course Status Management).
8. The content assignment changes are audit-logged with the course, the units, and the timestamp.

**Rules & Edge Cases:**
- Content units are assigned to a course and sequenced; the order is the learning order.
- Content units can map to curriculum topics; the mapping keeps the course aligned to the structure.
- Coverage is visible per topic; a topic with no content is a gap, not a silent omission.
- A content replacement updates the course's material; learners see the current version.
- A course is ready to publish when its content is complete; an incomplete course is not published cleanly.
- Content assignment changes are audit-logged with the course, units, and timestamp.
