# 2. Flashcards — Test Cases

User Type: **Student**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: flashcards.md — every feature, sub-feature, and rule covered

---

## Test Execution Policy
- Zero tolerance: any deviation from documented behavior = FAILED = bug
- Every bug is immediately logged/reported (Bug ID, feature, sub-feature, expected vs actual, severity) and fixed 100% before the group passes
- Feature group passes only at 100% test pass rate

## Coverage Matrix
| Feature | Sub-feature / Rule | Test IDs |
|---------|--------------------|----------|
| 2.1 Flashcard Creation and Management | Auto-generate a flashcard deck from a video's key concepts | TC-ST-05-02-001 |
| 2.1 Flashcard Creation and Management | Create a custom deck with a title and topic | TC-ST-05-02-002 |
| 2.1 Flashcard Creation and Management | Add a card (front question, back answer, optional image) | TC-ST-05-02-003 |
| 2.1 Flashcard Creation and Management | Edit, reorder, and delete cards within a deck | TC-ST-05-02-004 |
| 2.1 Flashcard Creation and Management | Organize decks by subject and topic | TC-ST-05-02-005 |
| 2.1 Flashcard Creation and Management | Track mastery per card (learning vs. mastered) | TC-ST-05-02-006 |
| 2.1 Flashcard Creation and Management | Deck list with card counts and mastery progress | TC-ST-05-02-007 |
| 2.1 Flashcard Creation and Management | Deck event logging (created, card added, edited, deleted) | TC-ST-05-02-008 |
| 2.1 Flashcard Creation and Management | Audit logging of the flashcard creation and management | TC-ST-05-02-009 |
| 2.1 Flashcard Creation and Management | Rule: A card requires a front (question) and a back (answer); the image is optional. | TC-ST-05-02-001 |
| 2.1 Flashcard Creation and Management | Rule: Auto-generated decks can be edited; the Student owns the resulting cards. | TC-ST-05-02-002 |
| 2.1 Flashcard Creation and Management | Rule: Mastery per card is tracked (learning vs. mastered) and updates with study sessions. | TC-ST-05-02-003 |
| 2.1 Flashcard Creation and Management | Rule: Deleting a card removes it from the deck; deleting a deck removes all its cards. | TC-ST-05-02-004 |
| 2.1 Flashcard Creation and Management | Rule: Decks are organized by subject and topic. | TC-ST-05-02-005 |
| 2.1 Flashcard Creation and Management | Rule: Deck events (created, card added, edited, deleted) are logged with the deck and the timestamp. | TC-ST-05-02-006 |
| 2.1 Flashcard Creation and Management | Rule: The flashcard creation and management is audit-logged with the account, the deck, and the timestamp. | TC-ST-05-02-007 |
| 2.2 Flashcard Study Session | Start a study session on a deck | TC-ST-05-02-010 |
| 2.2 Flashcard Study Session | Flip a card to reveal the answer | TC-ST-05-02-011 |
| 2.2 Flashcard Study Session | Self-rate recall: Again, Good, Easy | TC-ST-05-02-012 |
| 2.2 Flashcard Study Session | Session schedules reviews via the Spaced Repetition System | TC-ST-05-02-013 |
| 2.2 Flashcard Study Session | Update card mastery based on ratings | TC-ST-05-02-014 |
| 2.2 Flashcard Study Session | Study a filtered subset (e.g., only "learning" cards) | TC-ST-05-02-015 |
| 2.2 Flashcard Study Session | Session summary (cards reviewed, correct, time) | TC-ST-05-02-016 |
| 2.2 Flashcard Study Session | Session event logging (started, ratings, completed) | TC-ST-05-02-017 |
| 2.2 Flashcard Study Session | Audit logging of the flashcard study session | TC-ST-05-02-018 |
| 2.2 Flashcard Study Session | Rule: A card is rated Again, Good, or Easy; the rating drives the SRS review interval. | TC-ST-05-02-010 |
| 2.2 Flashcard Study Session | Rule: "Again" schedules a sooner review; "Easy" schedules a later one. | TC-ST-05-02-011 |
| 2.2 Flashcard Study Session | Rule: Card mastery updates based on the ratings over time. | TC-ST-05-02-012 |
| 2.2 Flashcard Study Session | Rule: A filtered session studies only the selected subset (e.g., "learning" cards). | TC-ST-05-02-013 |
| 2.2 Flashcard Study Session | Rule: The session summary reports cards reviewed, correct, and time. | TC-ST-05-02-014 |
| 2.2 Flashcard Study Session | Rule: Session events (started, ratings, completed) are logged with the deck and the timestamp. | TC-ST-05-02-015 |
| 2.2 Flashcard Study Session | Rule: The flashcard study session is audit-logged with the account, the deck, and the timestamp. | TC-ST-05-02-016 |
| 2.3 Flashcard Sharing and Community Library | Share a deck with classmates (by link or invite) | TC-ST-05-02-019 |
| 2.3 Flashcard Sharing and Community Library | Public community library of community-created decks | TC-ST-05-02-020 |
| 2.3 Flashcard Sharing and Community Library | Browse and search the community library by subject and topic | TC-ST-05-02-021 |
| 2.3 Flashcard Sharing and Community Library | Like and comment on a deck | TC-ST-05-02-022 |
| 2.3 Flashcard Sharing and Community Library | Use (copy) a community deck into the Student's own decks | TC-ST-05-02-023 |
| 2.3 Flashcard Sharing and Community Library | Shared decks read-only to others unless editing is allowed | TC-ST-05-02-024 |
| 2.3 Flashcard Sharing and Community Library | Gamification points for creating quality decks | TC-ST-05-02-025 |
| 2.3 Flashcard Sharing and Community Library | Sharing and community event logging (shared, liked, commented, copied) | TC-ST-05-02-026 |
| 2.3 Flashcard Sharing and Community Library | Audit logging of the flashcard sharing and community library | TC-ST-05-02-027 |
| 2.3 Flashcard Sharing and Community Library | Rule: A shared deck is read-only to others unless the owner allows editing. | TC-ST-05-02-019 |
| 2.3 Flashcard Sharing and Community Library | Rule: The community library is browsable and searchable by subject and topic. | TC-ST-05-02-020 |
| 2.3 Flashcard Sharing and Community Library | Rule: Copying a community deck creates a private copy the Student can edit. | TC-ST-05-02-021 |
| 2.3 Flashcard Sharing and Community Library | Rule: Likes and comments are recorded on the deck. | TC-ST-05-02-022 |
| 2.3 Flashcard Sharing and Community Library | Rule: Quality decks earn gamification points per the platform's rules. | TC-ST-05-02-023 |
| 2.3 Flashcard Sharing and Community Library | Rule: Sharing and community events (shared, liked, commented, copied) are logged with the deck and the timestamp. | TC-ST-05-02-024 |
| 2.3 Flashcard Sharing and Community Library | Rule: The flashcard sharing and community library is audit-logged with the account, the deck, and the timestamp. | TC-ST-05-02-025 |

## 2.1 Flashcard Creation and Management

### TC-ST-05-02-001 — Auto-generate a flashcard deck from a video's key concepts
**Type:** Positive
**Covers:** 2.1 → Auto-generate a flashcard deck from a video's key concepts; Rule: A card requires a front (question) and a back (answer); the image is optional.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Auto-generate a flashcard deck from a video's key concepts.
2. Observe the result and verify the full behavior: Auto-generate a flashcard deck from a video's key concepts.
**Expected Result:** Auto-generate a flashcard deck from a video's key concepts — delivered exactly as documented.
**Priority:** Critical

### TC-ST-05-02-002 — Create a custom deck with a title and topic
**Type:** Positive
**Covers:** 2.1 → Create a custom deck with a title and topic; Rule: Auto-generated decks can be edited; the Student owns the resulting cards.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Create a custom deck with a title and topic.
2. Observe the result and verify the full behavior: Create a custom deck with a title and topic.
**Expected Result:** Create a custom deck with a title and topic — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-003 — Add a card (front question, back answer, optional image)
**Type:** Positive
**Covers:** 2.1 → Add a card (front question, back answer, optional image); Rule: Mastery per card is tracked (learning vs. mastered) and updates with study sessions.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Add a card (front question.
2. Observe the result and verify the full behavior: Add a card (front question, back answer, optional image).
**Expected Result:** Add a card (front question, back answer, optional image) — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-004 — Edit, reorder, and delete cards within a deck
**Type:** Positive
**Covers:** 2.1 → Edit, reorder, and delete cards within a deck; Rule: Deleting a card removes it from the deck; deleting a deck removes all its cards.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Edit.
2. Observe the result and verify the full behavior: Edit, reorder, and delete cards within a deck.
**Expected Result:** Edit, reorder, and delete cards within a deck — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-005 — Organize decks by subject and topic
**Type:** Positive
**Covers:** 2.1 → Organize decks by subject and topic; Rule: Decks are organized by subject and topic.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Organize decks by subject and topic.
2. Observe the result and verify the full behavior: Organize decks by subject and topic.
**Expected Result:** Organize decks by subject and topic — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-006 — Track mastery per card (learning vs. mastered)
**Type:** Positive
**Covers:** 2.1 → Track mastery per card (learning vs. mastered); Rule: Deck events (created, card added, edited, deleted) are logged with the deck and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Track mastery per card (learning vs. mastered).
2. Observe the result and verify the full behavior: Track mastery per card (learning vs. mastered).
**Expected Result:** Track mastery per card (learning vs. mastered) — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-007 — Deck list with card counts and mastery progress
**Type:** Positive
**Covers:** 2.1 → Deck list with card counts and mastery progress; Rule: The flashcard creation and management is audit-logged with the account, the deck, and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Deck list with card counts and mastery progress.
2. Observe the result and verify the full behavior: Deck list with card counts and mastery progress.
**Expected Result:** Deck list with card counts and mastery progress — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-008 — Deck event logging (created, card added, edited, deleted)
**Type:** Positive
**Covers:** 2.1 → Deck event logging (created, card added, edited, deleted)
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Deck event logging (created.
2. Observe the result and verify the full behavior: Deck event logging (created, card added, edited, deleted).
**Expected Result:** Deck event logging (created, card added, edited, deleted) — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-009 — Audit logging of the flashcard creation and management
**Type:** Positive
**Covers:** 2.1 → Audit logging of the flashcard creation and management
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, perform the action associated with: Audit logging of the flashcard creation and management.
2. Open the relevant activity / audit log and verify the event is recorded with the account, the action, and the timestamp.
**Expected Result:** The action is audit-logged — the account, the action, and the timestamp are recorded.
**Priority:** Critical

## 2.2 Flashcard Study Session

### TC-ST-05-02-010 — Start a study session on a deck
**Type:** Positive
**Covers:** 2.2 → Start a study session on a deck; Rule: A card is rated Again, Good, or Easy; the rating drives the SRS review interval.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Start a study session on a deck.
2. Observe the result and verify the full behavior: Start a study session on a deck.
**Expected Result:** Start a study session on a deck — delivered exactly as documented.
**Priority:** Critical

### TC-ST-05-02-011 — Flip a card to reveal the answer
**Type:** Positive
**Covers:** 2.2 → Flip a card to reveal the answer; Rule: "Again" schedules a sooner review; "Easy" schedules a later one.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Flip a card to reveal the answer.
2. Observe the result and verify the full behavior: Flip a card to reveal the answer.
**Expected Result:** Flip a card to reveal the answer — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-012 — Self-rate recall: Again, Good, Easy
**Type:** Positive
**Covers:** 2.2 → Self-rate recall: Again, Good, Easy; Rule: Card mastery updates based on the ratings over time.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Self-rate recall: Again.
2. Observe the result and verify the full behavior: Self-rate recall: Again, Good, Easy.
**Expected Result:** Self-rate recall: Again, Good, Easy — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-013 — Session schedules reviews via the Spaced Repetition System
**Type:** Positive
**Covers:** 2.2 → Session schedules reviews via the Spaced Repetition System; Rule: A filtered session studies only the selected subset (e.g., "learning" cards).
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Session schedules reviews via the Spaced Repetition System.
2. Observe the result and verify the full behavior: Session schedules reviews via the Spaced Repetition System.
**Expected Result:** Session schedules reviews via the Spaced Repetition System — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-014 — Update card mastery based on ratings
**Type:** Positive
**Covers:** 2.2 → Update card mastery based on ratings; Rule: The session summary reports cards reviewed, correct, and time.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Update card mastery based on ratings.
2. Observe the result and verify the full behavior: Update card mastery based on ratings.
**Expected Result:** Update card mastery based on ratings — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-015 — Study a filtered subset (e.g., only "learning" cards)
**Type:** Positive
**Covers:** 2.2 → Study a filtered subset (e.g., only "learning" cards); Rule: Session events (started, ratings, completed) are logged with the deck and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Study a filtered subset (e.g..
2. Observe the result and verify the full behavior: Study a filtered subset (e.g., only "learning" cards).
**Expected Result:** Study a filtered subset (e.g., only "learning" cards) — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-016 — Session summary (cards reviewed, correct, time)
**Type:** Positive
**Covers:** 2.2 → Session summary (cards reviewed, correct, time); Rule: The flashcard study session is audit-logged with the account, the deck, and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Session summary (cards reviewed.
2. Observe the result and verify the full behavior: Session summary (cards reviewed, correct, time).
**Expected Result:** Session summary (cards reviewed, correct, time) — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-017 — Session event logging (started, ratings, completed)
**Type:** Positive
**Covers:** 2.2 → Session event logging (started, ratings, completed)
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Session event logging (started.
2. Observe the result and verify the full behavior: Session event logging (started, ratings, completed).
**Expected Result:** Session event logging (started, ratings, completed) — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-018 — Audit logging of the flashcard study session
**Type:** Positive
**Covers:** 2.2 → Audit logging of the flashcard study session
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, perform the action associated with: Audit logging of the flashcard study session.
2. Open the relevant activity / audit log and verify the event is recorded with the account, the action, and the timestamp.
**Expected Result:** The action is audit-logged — the account, the action, and the timestamp are recorded.
**Priority:** Critical

## 2.3 Flashcard Sharing and Community Library

### TC-ST-05-02-019 — Share a deck with classmates (by link or invite)
**Type:** Positive
**Covers:** 2.3 → Share a deck with classmates (by link or invite); Rule: A shared deck is read-only to others unless the owner allows editing.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Share a deck with classmates (by link or invite).
2. Observe the result and verify the full behavior: Share a deck with classmates (by link or invite).
**Expected Result:** Share a deck with classmates (by link or invite) — delivered exactly as documented.
**Priority:** Critical

### TC-ST-05-02-020 — Public community library of community-created decks
**Type:** Positive
**Covers:** 2.3 → Public community library of community-created decks; Rule: The community library is browsable and searchable by subject and topic.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Public community library of community-created decks.
2. Observe the result and verify the full behavior: Public community library of community-created decks.
**Expected Result:** Public community library of community-created decks — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-021 — Browse and search the community library by subject and topic
**Type:** Positive
**Covers:** 2.3 → Browse and search the community library by subject and topic; Rule: Copying a community deck creates a private copy the Student can edit.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Browse and search the community library by subject and topic.
2. Observe the result and verify the full behavior: Browse and search the community library by subject and topic.
**Expected Result:** Browse and search the community library by subject and topic — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-022 — Like and comment on a deck
**Type:** Positive
**Covers:** 2.3 → Like and comment on a deck; Rule: Likes and comments are recorded on the deck.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Like and comment on a deck.
2. Observe the result and verify the full behavior: Like and comment on a deck.
**Expected Result:** Like and comment on a deck — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-023 — Use (copy) a community deck into the Student's own decks
**Type:** Positive
**Covers:** 2.3 → Use (copy) a community deck into the Student's own decks; Rule: Quality decks earn gamification points per the platform's rules.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Use (copy) a community deck into the Student's own decks.
2. Observe the result and verify the full behavior: Use (copy) a community deck into the Student's own decks.
**Expected Result:** Use (copy) a community deck into the Student's own decks — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-024 — Shared decks read-only to others unless editing is allowed
**Type:** Positive
**Covers:** 2.3 → Shared decks read-only to others unless editing is allowed; Rule: Sharing and community events (shared, liked, commented, copied) are logged with the deck and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Shared decks read-only to others unless editing is allowed.
2. Observe the result and verify the full behavior: Shared decks read-only to others unless editing is allowed.
**Expected Result:** Shared decks read-only to others unless editing is allowed — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-025 — Gamification points for creating quality decks
**Type:** Positive
**Covers:** 2.3 → Gamification points for creating quality decks; Rule: The flashcard sharing and community library is audit-logged with the account, the deck, and the timestamp.
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Gamification points for creating quality decks.
2. Observe the result and verify the full behavior: Gamification points for creating quality decks.
**Expected Result:** Gamification points for creating quality decks — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-026 — Sharing and community event logging (shared, liked, commented, copied)
**Type:** Positive
**Covers:** 2.3 → Sharing and community event logging (shared, liked, commented, copied)
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, set up the precondition and perform: Sharing and community event logging (shared.
2. Observe the result and verify the full behavior: Sharing and community event logging (shared, liked, commented, copied).
**Expected Result:** Sharing and community event logging (shared, liked, commented, copied) — delivered exactly as documented.
**Priority:** High

### TC-ST-05-02-027 — Audit logging of the flashcard sharing and community library
**Type:** Positive
**Covers:** 2.3 → Audit logging of the flashcard sharing and community library
**Preconditions:** A Student account is active and the Student is in the state required for this behavior.
**Steps:**
1. As a Student, perform the action associated with: Audit logging of the flashcard sharing and community library.
2. Open the relevant activity / audit log and verify the event is recorded with the account, the action, and the timestamp.
**Expected Result:** The action is audit-logged — the account, the action, and the timestamp are recorded.
**Priority:** Critical
