# 2. Student Roster & Groups

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

---

## 2. Student Roster & Groups

### 2.1 Student Roster
**What it does:** Shows the Training Institute the full student roster: all students with their status, license, course, and last activity. The Institute can search, filter, sort, and export the roster. This is the central view of the institute's student base.

**Sub-features:**
- Full student roster
- Status, license, course, and last activity per student
- Search the roster
- Filter by status, course, or license
- Sort the roster
- Export the roster
- Roster available on web and mobile
- Roster event logging (viewed, exported)
- Audit logging of the student roster

**Training Institute User Journey:**
1. Training Institute opens the student roster.
2. The full student roster is shown.
3. The status, license, course, and last activity are shown per student.
4. Training Institute searches the roster.
5. Training Institute filters by status, course, or license.
6. Training Institute exports the roster.
7. Training Institute opens Profile → "Activity" and confirms the roster events are recorded.

**Rules & Edge Cases:**
- The roster is searchable and filterable.
- The roster can be exported.
- Roster events (viewed, exported) are logged with the account and the timestamp.
- The student roster is audit-logged with the account and the timestamp.

### 2.2 Student Groups & Cohorts
**What it does:** Lets the Training Institute organize students into groups and cohorts: the Institute creates a group, adds students to it, and manages the group's course assignment. The Institute sees the groups with their member counts. This supports batch operations and cohort-based tracking.

**Sub-features:**
- Create a student group
- Add students to a group
- Remove students from a group
- Group course assignment
- Groups with member counts
- Rename or delete a group
- Groups available on web and mobile
- Groups event logging (created, updated)
- Audit logging of the student groups and cohorts

**Training Institute User Journey:**
1. Training Institute opens the student groups.
2. Training Institute creates a student group.
3. Training Institute adds students to the group.
4. Training Institute removes students from the group.
5. Training Institute assigns the group's course.
6. The groups with member counts are shown.
7. Training Institute opens Profile → "Activity" and confirms the groups events are recorded.

**Rules & Edge Cases:**
- A student can belong to multiple groups.
- A group with members cannot be deleted without reassignment.
- Groups events (created, updated) are logged with the account and the timestamp.
- The student groups and cohorts is audit-logged with the account and the timestamp.

### 2.3 Student Status Management
**What it does:** Lets the Training Institute manage student status: the Institute activates, suspends, or deactivates a student, with the access changing accordingly. The Institute sees the status of each student and the reason for any change. This controls who has active access.

**Sub-features:**
- Student status view
- Activate a student
- Suspend a student
- Deactivate a student
- Access changes with status
- Reason recorded for status change
- Status available on web and mobile
- Status event logging (changed)
- Audit logging of the student status management

**Training Institute User Journey:**
1. Training Institute opens the student status management.
2. The student status view is shown.
3. Training Institute activates a student.
4. Training Institute suspends a student.
5. Training Institute deactivates a student.
6. The access changes with status.
7. Training Institute opens Profile → "Activity" and confirms the status events are recorded.

**Rules & Edge Cases:**
- A suspended student's access is paused, not revoked.
- A deactivated student's license is returned to the pool.
- Status events (changed) are logged with the account and the timestamp.
- The student status management is audit-logged with the account and the timestamp.
