# 2. License Pool Management

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

---

## 2. License Pool Management

### 2.1 License Pool Overview
**What it does:** Shows the Training Institute the license pool: the total licenses, the assigned licenses, the unassigned licenses, and the licenses by tier and term. The Institute sees the pool at a glance and can filter by tier or status. This gives the Institute a real-time view of its available capacity.

**Sub-features:**
- License pool overview
- Total, assigned, and unassigned counts
- Licenses by tier and term
- Filter by tier or status
- Pool updated in real time
- Pool available on web and mobile
- Pool event logging (viewed)
- Audit logging of the license pool overview

**Training Institute User Journey:**
1. Training Institute opens the license pool.
2. The license pool overview is shown.
3. The total, assigned, and unassigned counts are shown.
4. The licenses by tier and term are shown.
5. Training Institute filters by tier or status.
6. The pool is updated in real time.
7. Training Institute opens Profile → "Activity" and confirms the pool events are recorded.

**Rules & Edge Cases:**
- The pool is updated in real time on assignment and release.
- The unassigned count equals total minus assigned.
- Pool events (viewed) are logged with the account and the timestamp.
- The license pool overview is audit-logged with the account and the timestamp.

### 2.2 License Assignment to Students
**What it does:** Lets the Training Institute assign licenses to students: the Institute selects a student and an unassigned license, and the student gains access immediately. The Institute can assign one license at a time or in bulk. This connects the institute's purchased capacity to its students.

**Sub-features:**
- Assign a license to a student
- Bulk license assignment
- Student gains access immediately
- Assignment confirmation shown
- Reassign a license to another student
- Assignment available on web and mobile
- Assignment event logging (assigned, reassigned)
- Audit logging of the license assignment to students

**Training Institute User Journey:**
1. Training Institute opens the license assignment.
2. Training Institute selects a student and an unassigned license.
3. The student gains access immediately.
4. Training Institute performs a bulk license assignment.
5. The assignment confirmation is shown.
6. Training Institute reassigns a license to another student.
7. Training Institute opens Profile → "Activity" and confirms the assignment events are recorded.

**Rules & Edge Cases:**
- A student can hold only one active license at a time.
- A reassignment revokes the previous student's access.
- Assignment events (assigned, reassigned) are logged with the account and the timestamp.
- The license assignment to students is audit-logged with the account and the timestamp.

### 2.3 License Release & Reclamation
**What it does:** Lets the Training Institute release licenses from students: the Institute removes a license from a student who has left or no longer needs it, returning it to the unassigned pool. The Institute can release one license or reclaim all licenses from a group of students. This frees capacity for new students.

**Sub-features:**
- Release a license from a student
- Bulk license reclamation
- License returned to the unassigned pool
- Student access revoked on release
- Release confirmation shown
- Release available on web and mobile
- Release event logging (released, reclaimed)
- Audit logging of the license release and reclamation

**Training Institute User Journey:**
1. Training Institute opens the license release.
2. Training Institute releases a license from a student.
3. The license is returned to the unassigned pool.
4. Training Institute performs a bulk license reclamation.
5. The student access is revoked on release.
6. The release confirmation is shown.
7. Training Institute opens Profile → "Activity" and confirms the release events are recorded.

**Rules & Edge Cases:**
- The student access is revoked immediately on release.
- A released license returns to the unassigned pool.
- Release events (released, reclaimed) are logged with the account and the timestamp.
- The license release and reclamation is audit-logged with the account and the timestamp.
