# 1. Course Browsing & Discovery

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

---

## 1. Course Browsing & Discovery

### 1.1 Academic Course Browsing
**What it does:** Lets the Student browse academic courses organized by Education Board → Grade → Subject. The Student navigates the hierarchy to find courses relevant to their board, grade, and subject, and views a course's outline, sample content, and pricing before enrolling. Access is gated by the Student's subscription and enrollment.

**Sub-features:**
- Browse by Education Board (e.g., CAPS, CBSE, IB)
- Within a board, browse by Grade/Level
- Within a grade, browse by Subject
- Course card showing title, subject, grade, duration, and difficulty
- Course detail view: outline, learning outcomes, sample content, pricing
- Sample content preview (e.g., first 2 minutes of a video unlocked)
- Enroll / "Start learning" action gated by subscription
- Search within academic courses by keyword
- Filter by subject, grade, and difficulty
- Browsing and enrollment event logging
- Audit logging of the academic course browsing

**Student User Journey:**
1. Student opens the "Courses" section and selects "Academic".
2. Student selects their Education Board (CAPS), then Grade (Grade 10), then Subject (Mathematics).
3. The list shows Mathematics courses for Grade 10 CAPS, each with a card (title, duration, difficulty).
4. Student opens a course and views the outline, learning outcomes, and a sample video (first 2 minutes unlocked).
5. Student sees the pricing (e.g., R299/month for Mathematics only) and clicks "Start learning".
6. Because the Student is on a trial/active subscription, the course is unlocked and added to "My courses".
7. Student uses the search box to find "Trigonometry" and the filter to narrow to Grade 10.
8. Student opens Profile → "Activity" and confirms the browsing and enrollment events are recorded.

**Rules & Edge Cases:**
- The hierarchy is Board → Grade → Subject; a course appears only under its board/grade/subject.
- Sample content is limited (e.g., first 2 minutes); full content requires an active subscription/enrollment.
- Enrollment is gated by the Student's subscription; without it, the Student sees pricing and a "Choose a plan" prompt.
- Search and filters operate within the academic catalog.
- Browsing and enrollment events are logged with the course and the timestamp.
- The academic course browsing is audit-logged with the account, the course, and the timestamp.

### 1.2 Professional Course Browsing
**What it does:** Lets the Student browse professional (career/skill) courses organized by Category → Sub Category → Course. The Student navigates to find industry-relevant courses, views the course structure (overview, instructor, duration, prerequisites, certifications), and enrolls subject to subscription.

**Sub-features:**
- Browse by Category (e.g., IT, Business, Languages, Creative)
- Within a category, browse by Sub Category
- Course card showing title, category, duration, and skill tags
- Course detail view: overview, learning outcomes, instructor profile, duration, prerequisites, certifications
- Sample content preview before enrollment
- Enroll / "Start learning" action gated by subscription
- Search within professional courses by keyword or skill
- Filter by category, sub category, and skill
- Browsing and enrollment event logging
- Audit logging of the professional course browsing

**Student User Journey:**
1. Student opens the "Courses" section and selects "Professional".
2. Student selects a Category (IT), then a Sub Category (Web Development).
3. The list shows Web Development courses, each with a card (title, duration, skill tags).
4. Student opens a course and views the overview, learning outcomes, instructor profile, duration, prerequisites, and industry certifications.
5. Student previews a sample lesson and clicks "Start learning".
6. With an active subscription, the course is unlocked and added to "My courses".
7. Student searches by skill ("JavaScript") and filters by category.
8. Student opens Profile → "Activity" and confirms the browsing and enrollment events are recorded.

**Rules & Edge Cases:**
- The hierarchy is Category → Sub Category → Course.
- Prerequisites are shown; a course with unmet prerequisites is flagged but can still be browsed.
- Sample content is limited; full content requires an active subscription/enrollment.
- Search and filters operate within the professional catalog, including by skill tag.
- Browsing and enrollment events are logged with the course and the timestamp.
- The professional course browsing is audit-logged with the account, the course, and the timestamp.

### 1.3 My Courses and Enrollment
**What it does:** Shows the Student's enrolled courses ("My courses") with their status (in progress, completed, not started) and provides a single place to resume, review, or drop a course. Enrollment and completion are tracked and feed the progress and analytics modules.

**Sub-features:**
- "My courses" list with status (not started, in progress, completed)
- Resume a course at the last watched position
- View course progress (percent complete, lessons done)
- Drop/unenroll from a course (with confirmation)
- Re-enroll in a previously dropped course
- Course completion marked when all required content is done
- Completion feeds certificates and analytics
- Sort and filter "My courses" by status and subject
- Enrollment and completion event logging
- Audit logging of the my courses and enrollment

**Student User Journey:**
1. Student opens "My courses" and sees their enrolled courses with status badges (In progress: Mathematics; Not started: Chemistry).
2. Student taps the Mathematics course and is taken to the last watched lesson (resume).
3. The course page shows progress (45% complete, 9 of 20 lessons done).
4. Student finishes the final required lesson; the course is marked "Completed" and a certificate becomes available.
5. Student opens a course they no longer need and clicks "Drop course"; after confirmation, it moves to "Dropped".
6. Student later re-enrolls in the dropped course; it returns to "My courses" with prior progress preserved.
7. Student sorts "My courses" by status and filters by subject.
8. Student opens Profile → "Activity" and confirms the enrollment and completion events are recorded.

**Rules & Edge Cases:**
- A course's status is one of: not started, in progress, completed (or dropped).
- Resume returns the Student to the last watched position within the course.
- Dropping a course requires confirmation; prior progress is preserved for re-enrollment.
- Completion requires all required content to be done; optional content does not block completion.
- Completion feeds certificates and the analytics module.
- Enrollment, drop, re-enroll, and completion events are logged with the course and the timestamp.
- The my courses and enrollment is audit-logged with the account, the course, and the timestamp.
