# 3. Flashcard Management — Test Cases

User Type: **Super Administrator**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: flashcard_management.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 |
|---------|--------------------|----------|
| 3.1 Auto-Generated Flashcards from Video Content | AI generation: flashcards generated from a video's content | TC-SA-09-03-001 |
| 3.1 Auto-Generated Flashcards from Video Content | Card structure: the concept (front) and the definition/explanation (back) | TC-SA-09-03-002 |
| 3.1 Auto-Generated Flashcards from Video Content | Draft status: the generated cards are drafts, not final | TC-SA-09-03-003 |
| 3.1 Auto-Generated Flashcards from Video Content | Human review: the generated cards reviewed for accuracy before approval | TC-SA-09-03-004 |
| 3.1 Auto-Generated Flashcards from Video Content | Approval: the reviewed cards approved into the deck (or corrected/rejected) | TC-SA-09-03-005 |
| 3.1 Auto-Generated Flashcards from Video Content | Generation parameters: the card count and the focus requested | TC-SA-09-03-006 |
| 3.1 Auto-Generated Flashcards from Video Content | Traceability: the AI-generated cards marked as such (the source video) | TC-SA-09-03-007 |
| 3.1 Auto-Generated Flashcards from Video Content | Audit logging of generation and approval | TC-SA-09-03-008 |
| 3.1 Auto-Generated Flashcards from Video Content | Rule: AI-generated flashcards are drafts; they enter the deck only after human review and approval | TC-SA-09-03-003 |
| 3.1 Auto-Generated Flashcards from Video Content | Rule: the card structure is the concept (front) and the definition/explanation (back); it is the recall format | TC-SA-09-03-002 |
| 3.1 Auto-Generated Flashcards from Video Content | Rule: the review checks accuracy (the concept matches the content, the definition is correct); an inaccurate card is corrected or rejected | TC-SA-09-03-004 |
| 3.1 Auto-Generated Flashcards from Video Content | Rule: the generation parameters (count, focus) are set per request; they are explicit | TC-SA-09-03-006 |
| 3.1 Auto-Generated Flashcards from Video Content | Rule: the AI-generated cards are marked as such, with the source video; the origin is traceable | TC-SA-09-03-007 |
| 3.1 Auto-Generated Flashcards from Video Content | Rule: generation and approval are audit-logged with the video, cards, actor, and timestamp | TC-SA-09-03-008 |
| 3.2 Image and Audio Support, and Topic/Difficulty Categorization | Image support: the image attached to a card (the visual for the concept) | TC-SA-09-03-009 |
| 3.2 Image and Audio Support, and Topic/Difficulty Categorization | Audio support: the audio attached to a card (the pronunciation/explanation) | TC-SA-09-03-010 |
| 3.2 Image and Audio Support, and Topic/Difficulty Categorization | Topic categorization: the cards categorized by topic | TC-SA-09-03-011 |
| 3.2 Image and Audio Support, and Topic/Difficulty Categorization | Difficulty categorization: the cards categorized by difficulty | TC-SA-09-03-012 |
| 3.2 Image and Audio Support, and Topic/Difficulty Categorization | Deck organization: the cards organized into decks by topic/difficulty | TC-SA-09-03-013 |
| 3.2 Image and Audio Support, and Topic/Difficulty Categorization | Recall practice: the cards used for recall (the learner flips to check) | TC-SA-09-03-014 |
| 3.2 Image and Audio Support, and Topic/Difficulty Categorization | Audit logging of card enrichment/categorization | TC-SA-09-03-015 |
| 3.2 Image and Audio Support, and Topic/Difficulty Categorization | Rule: the image and audio are attached to the cards where they aid recall; they are not mandatory for every card | TC-SA-09-03-016 |
| 3.2 Image and Audio Support, and Topic/Difficulty Categorization | Rule: the cards are categorized by topic and difficulty; the decks are organized for targeted study | TC-SA-09-03-013 |
| 3.2 Image and Audio Support, and Topic/Difficulty Categorization | Rule: a mis-categorized card is moved to the right topic/difficulty; the change is recorded | TC-SA-09-03-017 |
| 3.2 Image and Audio Support, and Topic/Difficulty Categorization | Rule: the recall practice is the flip-to-check format; the learner recalls before checking | TC-SA-09-03-014 |
| 3.2 Image and Audio Support, and Topic/Difficulty Categorization | Rule: the image/audio are curated (they match the concept); a misleading visual is not attached | TC-SA-09-03-018 |
| 3.2 Image and Audio Support, and Topic/Difficulty Categorization | Rule: card enrichment/categorization is audit-logged with the deck, cards, and timestamp | TC-SA-09-03-015 |
| 3.3 Public Flashcard Library and Moderation of Shared Decks | Public library: the community-created decks shared publicly | TC-SA-09-03-019 |
| 3.3 Public Flashcard Library and Moderation of Shared Decks | Deck submission: a learner/teacher submits a deck to the public library | TC-SA-09-03-020 |
| 3.3 Public Flashcard Library and Moderation of Shared Decks | Moderation: the submitted decks reviewed for accuracy and appropriateness | TC-SA-09-03-021 |
| 3.3 Public Flashcard Library and Moderation of Shared Decks | Approval: the reviewed decks approved into the public library (or rejected) | TC-SA-09-03-022 |
| 3.3 Public Flashcard Library and Moderation of Shared Decks | Rejection: a deck that fails the review rejected (with the reason) | TC-SA-09-03-023 |
| 3.3 Public Flashcard Library and Moderation of Shared Decks | Removal: a published deck removed where it is found to be faulty | TC-SA-09-03-024 |
| 3.3 Public Flashcard Library and Moderation of Shared Decks | Audit logging of the moderation actions | TC-SA-09-03-025 |
| 3.3 Public Flashcard Library and Moderation of Shared Decks | Rule: the public library is the community-created decks; they are shared publicly, but moderated | TC-SA-09-03-019 |
| 3.3 Public Flashcard Library and Moderation of Shared Decks | Rule: a submitted deck is reviewed for accuracy and appropriateness before it is published; it is not auto-published | TC-SA-09-03-021 |
| 3.3 Public Flashcard Library and Moderation of Shared Decks | Rule: a rejected deck is informed of the reason; the submitter can revise and resubmit | TC-SA-09-03-023 |
| 3.3 Public Flashcard Library and Moderation of Shared Decks | Rule: a published deck can be removed where it is found faulty; the removal is recorded | TC-SA-09-03-024 |
| 3.3 Public Flashcard Library and Moderation of Shared Decks | Rule: the moderation queue is managed (the pending submissions reviewed); the library is curated, not a free-for-all | TC-SA-09-03-026 |
| 3.3 Public Flashcard Library and Moderation of Shared Decks | Rule: moderation actions are audit-logged with the deck, action, and timestamp | TC-SA-09-03-025 |

## 3.1 Auto-Generated Flashcards from Video Content

### TC-SA-09-03-001 — AI generation: flashcards generated from a video's content
**Type:** Positive
**Covers:** 3.1 → AI generation: flashcards generated from a video's content
**Preconditions:** A video exists; AI flashcard generation is available.
**Steps:**
1. For the video, request AI-generated flashcards: the count and the focus (the concepts to cover), from the video's content.
2. Verify the platform's in-house AI generates the draft flashcards from the video content.
**Expected Result:** The flashcards are generated from the video's content by the in-house AI.
**Priority:** Critical

### TC-SA-09-03-002 — Card structure: the concept (front) and the definition/explanation (back); it is the recall format
**Type:** Positive
**Covers:** 3.1 → Card structure: the concept (front) and the definition/explanation (back); Rule: the card structure is the concept (front) and the definition/explanation (back); it is the recall format
**Preconditions:** AI-generated flashcards have been produced.
**Steps:**
1. Review a generated card: verify the concept is on the front and the definition/explanation is on the back.
2. Verify the card structure is the recall format.
**Expected Result:** The card structure is the concept (front) and the definition/explanation (back) — the recall format.
**Priority:** High

### TC-SA-09-03-003 — Draft status: the generated cards are drafts, not final; they enter the deck only after human review and approval
**Type:** Negative
**Covers:** 3.1 → Draft status: the generated cards are drafts, not final; Rule: AI-generated flashcards are drafts; they enter the deck only after human review and approval
**Preconditions:** AI-generated flashcards have been produced for a video.
**Steps:**
1. Verify the generated cards appear as drafts (not yet in the deck).
2. Verify they are not available for recall practice until reviewed and approved.
**Expected Result:** The generated cards are drafts — they enter the deck only after human review and approval.
**Priority:** Critical

### TC-SA-09-03-004 — Human review: the generated cards reviewed for accuracy before approval; an inaccurate card is corrected or rejected
**Type:** Negative
**Covers:** 3.1 → Human review: the generated cards reviewed for accuracy before approval; Rule: the review checks accuracy (the concept matches the content, the definition is correct); an inaccurate card is corrected or rejected
**Preconditions:** AI-generated flashcards include an inaccurate card (the definition is wrong).
**Steps:**
1. Review the generated cards for accuracy: the concepts match the video's content and the definitions are correct.
2. Identify the inaccurate card.
3. Correct it (and approve the correction) or reject it.
**Expected Result:** The generated cards are reviewed for accuracy — the inaccurate card is corrected or rejected.
**Priority:** Critical

### TC-SA-09-03-005 — Approval: the reviewed cards approved into the deck (or corrected/rejected)
**Type:** Positive
**Covers:** 3.1 → Approval: the reviewed cards approved into the deck (or corrected/rejected)
**Preconditions:** AI-generated flashcards have been reviewed and are correct.
**Steps:**
1. Approve the correct cards into the deck.
2. Verify they are now available for recall practice.
**Expected Result:** The reviewed cards are approved into the deck — they are available for recall practice.
**Priority:** Critical

### TC-SA-09-03-006 — Generation parameters: the card count and the focus requested; they are set per request; they are explicit
**Type:** Positive
**Covers:** 3.1 → Generation parameters: the card count and the focus requested; Rule: the generation parameters (count, focus) are set per request; they are explicit
**Preconditions:** AI flashcard generation is requested for a video.
**Steps:**
1. Set the generation parameters: the card count and the focus (the concepts to cover).
2. Verify the parameters are explicit per request.
3. Verify the generated cards match the parameters.
**Expected Result:** The generation parameters (count, focus) are set per request — they are explicit and the generated cards match.
**Priority:** High

### TC-SA-09-03-007 — Traceability: the AI-generated cards marked as such (the source video); the origin is traceable
**Type:** Positive
**Covers:** 3.1 → Traceability: the AI-generated cards marked as such (the source video); Rule: the AI-generated cards are marked as such, with the source video; the origin is traceable
**Preconditions:** AI-generated flashcards have been approved into the deck.
**Steps:**
1. Open an AI-generated card in the deck.
2. Verify it is marked as AI-generated, with the source video.
3. Verify the origin is traceable.
**Expected Result:** The AI-generated cards are marked as such, with the source video — the origin is traceable.
**Priority:** High

### TC-SA-09-03-008 — Generation and approval are audit-logged with the video, the cards, the actor, and the timestamp
**Type:** Positive
**Covers:** 3.1 → Audit logging of generation and approval; Rule: generation and approval are audit-logged with the video, cards, actor, and timestamp
**Preconditions:** AI flashcard generation and approval events have occurred.
**Steps:**
1. Open the audit trail and filter by "flashcard generation".
2. Verify entries for generation and approval show the video, the cards, the actor, and the timestamp.
**Expected Result:** The generation and approval are audit-logged with the video, cards, actor, and timestamp.
**Priority:** Critical

## 3.2 Image and Audio Support, and Topic/Difficulty Categorization

### TC-SA-09-03-009 — Image support: the image attached to a card (the visual for the concept)
**Type:** Positive
**Covers:** 3.2 → Image support: the image attached to a card (the visual for the concept)
**Preconditions:** A flashcard deck exists; a card needs a visual.
**Steps:**
1. For the flashcard deck, add the image support: the image for the concept cards (the visual that aids recall).
2. Verify the image is attached to the card.
**Expected Result:** The image support is added — the image for the concept is attached to the card.
**Priority:** High

### TC-SA-09-03-010 — Audio support: the audio attached to a card (the pronunciation/explanation)
**Type:** Positive
**Covers:** 3.2 → Audio support: the audio attached to a card (the pronunciation/explanation)
**Preconditions:** A flashcard deck exists; a card needs audio.
**Steps:**
1. Add the audio support: the audio for the cards that need it (the pronunciation, the spoken explanation).
2. Verify the audio is attached to the card.
**Expected Result:** The audio support is added — the audio (the pronunciation, the spoken explanation) is attached to the card.
**Priority:** High

### TC-SA-09-03-011 — Topic categorization: the cards categorized by topic
**Type:** Positive
**Covers:** 3.2 → Topic categorization: the cards categorized by topic
**Preconditions:** A flashcard deck exists with cards covering multiple topics.
**Steps:**
1. Categorize the cards by topic (the cards grouped by the topic they cover).
2. Verify the categorization is set.
**Expected Result:** The cards are categorized by topic — the cards are grouped by the topic they cover.
**Priority:** High

### TC-SA-09-03-012 — Difficulty categorization: the cards categorized by difficulty
**Type:** Positive
**Covers:** 3.2 → Difficulty categorization: the cards categorized by difficulty
**Preconditions:** A flashcard deck exists with cards of varying difficulty.
**Steps:**
1. Categorize the cards by difficulty (the easy/medium/hard cards).
2. Verify the categorization is set.
**Expected Result:** The cards are categorized by difficulty — the easy/medium/hard cards are grouped.
**Priority:** High

### TC-SA-09-03-013 — Deck organization: the cards organized into decks by topic/difficulty; the decks are organized for targeted study
**Type:** Positive
**Covers:** 3.2 → Deck organization: the cards organized into decks by topic/difficulty; Rule: the cards are categorized by topic and difficulty; the decks are organized for targeted study
**Preconditions:** Cards are categorized by topic and difficulty.
**Steps:**
1. Organize the decks: the cards into decks by topic/difficulty, so a learner can study a specific topic or difficulty.
2. Verify the decks are organized for targeted study.
**Expected Result:** The decks are organized by topic/difficulty — a learner can study a specific topic or difficulty.
**Priority:** High

### TC-SA-09-03-014 — Recall practice: the cards used for recall (the learner flips to check); the learner recalls before checking
**Type:** Positive
**Covers:** 3.2 → Recall practice: the cards used for recall (the learner flips to check); Rule: the recall practice is the flip-to-check format; the learner recalls before checking
**Preconditions:** A flashcard deck is available; a learner is doing recall practice.
**Steps:**
1. As the learner, use the deck for recall practice: see the concept (front), recall the definition (back), and flip to check.
2. Verify the recall practice is the flip-to-check format (the learner recalls before checking).
3. Verify the image/audio aid the recall.
**Expected Result:** The recall practice is the flip-to-check format — the learner recalls before checking; the image/audio aid the recall.
**Priority:** High

### TC-SA-09-03-015 — Card enrichment/categorization is audit-logged with the deck, the cards, and the timestamp
**Type:** Positive
**Covers:** 3.2 → Audit logging of card enrichment/categorization; Rule: card enrichment/categorization is audit-logged with the deck, cards, and timestamp
**Preconditions:** Cards have been enriched (image/audio added) and categorized.
**Steps:**
1. Open the audit trail and filter by "flashcard enrichment".
2. Verify entries show the deck, the cards, and the timestamp.
**Expected Result:** The card enrichment/categorization is audit-logged with the deck, cards, and timestamp.
**Priority:** Critical

### TC-SA-09-03-016 — The image and audio are attached to the cards where they aid recall; they are not mandatory for every card
**Type:** Edge
**Covers:** 3.2 → Rule: the image and audio are attached to the cards where they aid recall; they are not mandatory for every card
**Preconditions:** A flashcard deck has cards with and without image/audio.
**Steps:**
1. Verify the image and audio are attached to the cards where they aid recall.
2. Verify they are not mandatory for every card (a card without image/audio is valid).
**Expected Result:** The image and audio are attached where they aid recall — they are not mandatory for every card.
**Priority:** Medium

### TC-SA-09-03-017 — A mis-categorized card is moved to the right topic/difficulty; the change is recorded
**Type:** Negative
**Covers:** 3.2 → Rule: a mis-categorized card is moved to the right topic/difficulty; the change is recorded
**Preconditions:** A card is mis-categorized (wrong topic/difficulty).
**Steps:**
1. Review the categorization: identify the mis-categorized card.
2. Move it to the right topic/difficulty.
3. Verify the change is recorded.
**Expected Result:** The mis-categorized card is moved to the right topic/difficulty — the change is recorded.
**Priority:** High

### TC-SA-09-03-018 — The image/audio are curated (they match the concept); a misleading visual is not attached
**Type:** Negative
**Covers:** 3.2 → Rule: the image/audio are curated (they match the concept); a misleading visual is not attached
**Preconditions:** An image is misleading (it does not match the concept).
**Steps:**
1. Attempt to attach the misleading image to the card.
2. Verify it is not attached (the curation check rejects it).
**Expected Result:** The image/audio are curated (they match the concept) — the misleading visual is not attached.
**Priority:** High

## 3.3 Public Flashcard Library and Moderation of Shared Decks

### TC-SA-09-03-019 — Public library: the community-created decks shared publicly; they are shared publicly, but moderated
**Type:** Positive
**Covers:** 3.3 → Public library: the community-created decks shared publicly; Rule: the public library is the community-created decks; they are shared publicly, but moderated
**Preconditions:** The public flashcard library exists with approved decks.
**Steps:**
1. Open the public flashcard library.
2. Verify the community-created decks are shared publicly.
3. Verify the decks are moderated (only approved decks are published).
**Expected Result:** The public library is the community-created decks — they are shared publicly, but moderated.
**Priority:** High

### TC-SA-09-03-020 — Deck submission: a learner/teacher submits a deck to the public library
**Type:** Positive
**Covers:** 3.3 → Deck submission: a learner/teacher submits a deck to the public library
**Preconditions:** A learner/teacher has created a flashcard deck.
**Steps:**
1. As the learner/teacher, submit the deck to the public library.
2. Verify the submission enters the moderation queue.
**Expected Result:** The deck is submitted to the public library — it enters the moderation queue.
**Priority:** High

### TC-SA-09-03-021 — Moderation: the submitted decks reviewed for accuracy and appropriateness; it is not auto-published
**Type:** Negative
**Covers:** 3.3 → Moderation: the submitted decks reviewed for accuracy and appropriateness; Rule: a submitted deck is reviewed for accuracy and appropriateness before it is published; it is not auto-published
**Preconditions:** A deck has been submitted to the public library.
**Steps:**
1. Verify the submitted deck is not auto-published (it is in the moderation queue).
2. Review the submitted deck for accuracy (the concepts and definitions are correct) and appropriateness (the content is suitable).
**Expected Result:** The submitted deck is reviewed for accuracy and appropriateness before it is published — it is not auto-published.
**Priority:** Critical

### TC-SA-09-03-022 — Approval: the reviewed decks approved into the public library (or rejected)
**Type:** Positive
**Covers:** 3.3 → Approval: the reviewed decks approved into the public library (or rejected)
**Preconditions:** A submitted deck passes the review.
**Steps:**
1. Approve the deck into the public library.
2. Verify it is now available to all learners.
**Expected Result:** The reviewed deck is approved into the public library — it is available to all learners.
**Priority:** Critical

### TC-SA-09-03-023 — Rejection: a deck that fails the review rejected (with the reason); the submitter can revise and resubmit
**Type:** Negative
**Covers:** 3.3 → Rejection: a deck that fails the review rejected (with the reason); Rule: a rejected deck is informed of the reason; the submitter can revise and resubmit
**Preconditions:** A submitted deck fails the review (inaccurate cards, inappropriate content).
**Steps:**
1. Reject the deck with the reason.
2. Verify the submitter is informed of the reason.
3. Verify the submitter can revise and resubmit.
**Expected Result:** The deck is rejected with the reason — the submitter is informed and can revise and resubmit.
**Priority:** Critical

### TC-SA-09-03-024 — Removal: a published deck removed where it is found to be faulty; the removal is recorded
**Type:** Negative
**Covers:** 3.3 → Removal: a published deck removed where it is found to be faulty; Rule: a published deck can be removed where it is found faulty; the removal is recorded
**Preconditions:** A published deck is later found to be faulty (an error reported).
**Steps:**
1. Remove the faulty deck from the public library.
2. Verify the removal is recorded.
3. Verify the deck is no longer available to learners.
**Expected Result:** The published deck is removed where it is found faulty — the removal is recorded.
**Priority:** Critical

### TC-SA-09-03-025 — Moderation actions are audit-logged with the deck, the action (approve/reject/remove), and the timestamp
**Type:** Positive
**Covers:** 3.3 → Audit logging of the moderation actions; Rule: moderation actions are audit-logged with the deck, action, and timestamp
**Preconditions:** Moderation actions (approve, reject, remove) have occurred.
**Steps:**
1. Open the audit trail and filter by "flashcard moderation".
2. Verify entries show the deck, the action (approve/reject/remove), and the timestamp.
**Expected Result:** The moderation actions are audit-logged with the deck, action, and timestamp.
**Priority:** Critical

### TC-SA-09-03-026 — The moderation queue is managed (the pending submissions reviewed); the library is curated, not a free-for-all
**Type:** Positive
**Covers:** 3.3 → Rule: the moderation queue is managed (the pending submissions reviewed); the library is curated, not a free-for-all
**Preconditions:** Multiple decks are pending in the moderation queue.
**Steps:**
1. Review the moderation queue: the pending submissions.
2. Verify the queue is managed (the pending submissions are reviewed).
3. Verify the library is curated (only approved decks are published).
**Expected Result:** The moderation queue is managed — the library is curated, not a free-for-all.
**Priority:** High
