# 2. Student Registration & Onboarding — Test Cases

User Type: **Student**
Source: *Mi Digital Academy - Education CRM Features Document*
Spec: student_registration_onboarding.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 Student Registration | "Sign Up as Student" entry point on the registration page | TC-ST-01-02-001 |
| 2.1 Student Registration | Basic information capture: full name, email, phone, password, confirm password | TC-ST-01-02-002 |
| 2.1 Student Registration | Password strength validation (length, character mix) with inline feedback | TC-ST-01-02-003 |
| 2.1 Student Registration | Terms & Conditions acceptance (mandatory checkbox) | TC-ST-01-02-004 |
| 2.1 Student Registration | Privacy Policy acceptance (mandatory checkbox) | TC-ST-01-02-005 |
| 2.1 Student Registration | Optional parent email capture for minors (under 18) | TC-ST-01-02-006 |
| 2.1 Student Registration | Duplicate detection: block registration if the email is already registered, with a "log in" or "forgot password" path | TC-ST-01-02-007 |
| 2.1 Student Registration | Account creation in pending-verification state on successful submission | TC-ST-01-02-008 |
| 2.1 Student Registration | Verification email dispatch with a single-use link | TC-ST-01-02-009 |
| 2.1 Student Registration | Registration attempt logging (success, duplicate, validation failure) | TC-ST-01-02-010 |
| 2.1 Student Registration | Audit logging of the student registration | TC-ST-01-02-011 |
| 2.1 Student Registration | Rule: Both the Terms & Conditions and Privacy Policy checkboxes are mandatory; the account cannot be created without them. | TC-ST-01-02-001 |
| 2.1 Student Registration | Rule: The email must be unique; a duplicate registration is blocked and routed to the login/reset path. | TC-ST-01-02-002 |
| 2.1 Student Registration | Rule: The password must meet the strength policy; weak passwords are rejected with specific, actionable hints. | TC-ST-01-02-003 |
| 2.1 Student Registration | Rule: For minors, the parent email is captured for consent but does not block registration if left blank (the platform's child-safety policy governs follow-up). | TC-ST-01-02-004 |
| 2.1 Student Registration | Rule: The verification link is single-use and time-limited; an expired link produces a "link expired — request a new one" message. | TC-ST-01-02-005 |
| 2.1 Student Registration | Rule: Registration attempts (success, duplicate, validation failure) are logged with timestamp, IP, and outcome. | TC-ST-01-02-006 |
| 2.1 Student Registration | Rule: The student registration is audit-logged with the account, the outcome, and the timestamp. | TC-ST-01-02-007 |
| 2.2 Email Verification | Verification email with a single-use, time-limited link | TC-ST-01-02-012 |
| 2.2 Email Verification | Verification code entry as an alternative to the link | TC-ST-01-02-013 |
| 2.2 Email Verification | Account activation on successful verification | TC-ST-01-02-014 |
| 2.2 Email Verification | "Verify now" prompt shown on login for unverified accounts | TC-ST-01-02-015 |
| 2.2 Email Verification | Resend verification with rate limiting | TC-ST-01-02-016 |
| 2.2 Email Verification | Expired-link handling with a reissue option | TC-ST-01-02-017 |
| 2.2 Email Verification | Re-verification when the email address is changed later | TC-ST-01-02-018 |
| 2.2 Email Verification | Verification status visibility in the profile | TC-ST-01-02-019 |
| 2.2 Email Verification | Verification event logging (sent, clicked, verified, expired, resent) | TC-ST-01-02-020 |
| 2.2 Email Verification | Audit logging of the email verification | TC-ST-01-02-021 |
| 2.2 Email Verification | Rule: The verification link is single-use and time-limited; reusing or expiring it produces a reissue path, not a silent failure. | TC-ST-01-02-012 |
| 2.2 Email Verification | Rule: Resends are rate-limited to prevent email abuse. | TC-ST-01-02-013 |
| 2.2 Email Verification | Rule: An unverified account has limited access and is prompted to verify on every login. | TC-ST-01-02-014 |
| 2.2 Email Verification | Rule: Changing the email address triggers re-verification of the new address; the old address remains active until the new one is verified. | TC-ST-01-02-015 |
| 2.2 Email Verification | Rule: Verification events (sent, clicked, verified, expired, resent) are logged with timestamp and channel. | TC-ST-01-02-016 |
| 2.2 Email Verification | Rule: The email verification is audit-logged with the account, the outcome, and the timestamp. | TC-ST-01-02-017 |
| 2.3 Onboarding Flow (Profile Setup) | Step 1 — Basic information: date of birth, grade/level, education board, school name (optional), city, province | TC-ST-01-02-022 |
| 2.3 Onboarding Flow (Profile Setup) | Step 2 — Learning preferences: subjects needing most help (multi-select), preferred learning style (visual, auditory, kinesthetic, mixed), study time preference (morning, afternoon, evening, late night), daily study time available (slider) | TC-ST-01-02-023 |
| 2.3 Onboarding Flow (Profile Setup) | Step 3 — Goals & motivation: academic goals (multi-select), target grade/score per subject, important exam dates | TC-ST-01-02-024 |
| 2.3 Onboarding Flow (Profile Setup) | Progress indicator across the three steps with the ability to go back and edit | TC-ST-01-02-025 |
| 2.3 Onboarding Flow (Profile Setup) | Skip option for optional fields (required fields must be completed) | TC-ST-01-02-026 |
| 2.3 Onboarding Flow (Profile Setup) | Profile completion status shown until the flow is finished | TC-ST-01-02-027 |
| 2.3 Onboarding Flow (Profile Setup) | Personalized recommendations generated from the completed profile | TC-ST-01-02-028 |
| 2.3 Onboarding Flow (Profile Setup) | Onboarding completion event logging | TC-ST-01-02-029 |
| 2.3 Onboarding Flow (Profile Setup) | Audit logging of the onboarding flow | TC-ST-01-02-030 |
| 2.3 Onboarding Flow (Profile Setup) | Rule: Required fields (grade, education board, at least one subject, learning style) must be completed; optional fields (school name) can be skipped. | TC-ST-01-02-022 |
| 2.3 Onboarding Flow (Profile Setup) | Rule: The flow can be paused and resumed; progress is saved between steps. | TC-ST-01-02-023 |
| 2.3 Onboarding Flow (Profile Setup) | Rule: Target scores and exam dates are validated (e.g., score within 0–100, exam date in the future). | TC-ST-01-02-024 |
| 2.3 Onboarding Flow (Profile Setup) | Rule: Changing the grade or education board after onboarding may require re-selecting subjects that are not available in the new context. | TC-ST-01-02-025 |
| 2.3 Onboarding Flow (Profile Setup) | Rule: The completed profile drives recommendations, the Smart Study Planner, and the AI Study Companion; an incomplete profile limits personalization. | TC-ST-01-02-026 |
| 2.3 Onboarding Flow (Profile Setup) | Rule: Onboarding completion (and each step save) is logged with timestamp and the fields changed. | TC-ST-01-02-027 |
| 2.3 Onboarding Flow (Profile Setup) | Rule: The onboarding flow is audit-logged with the account, the completion state, and the timestamp. | TC-ST-01-02-028 |
| 2.4 Free Trial Activation | "Start Free Trial" entry point (registration and course browsing) | TC-ST-01-02-031 |
| 2.4 Free Trial Activation | 7-day full-access trial period with no credit card required | TC-ST-01-02-032 |
| 2.4 Free Trial Activation | Trial activation: account upgraded to trial status, full content access unlocked | TC-ST-01-02-033 |
| 2.4 Free Trial Activation | Trial countdown shown on the dashboard (days remaining) | TC-ST-01-02-034 |
| 2.4 Free Trial Activation | Welcome email with getting-started tips on activation | TC-ST-01-02-035 |
| 2.4 Free Trial Activation | Trial expiry: account reverts to a limited state with a prompt to choose a plan | TC-ST-01-02-036 |
| 2.4 Free Trial Activation | Trial extension policy (e.g., one extension, support-assisted) | TC-ST-01-02-037 |
| 2.4 Free Trial Activation | Trial status visibility (active, days remaining, expired) | TC-ST-01-02-038 |
| 2.4 Free Trial Activation | Trial event logging (activated, extended, expired) | TC-ST-01-02-039 |
| 2.4 Free Trial Activation | Audit logging of the free trial activation | TC-ST-01-02-040 |
| 2.4 Free Trial Activation | Rule: The trial requires no payment information; a card is only requested when converting to a paid plan. | TC-ST-01-02-031 |
| 2.4 Free Trial Activation | Rule: The trial is 7 days of full access; the countdown is shown on the dashboard. | TC-ST-01-02-032 |
| 2.4 Free Trial Activation | Rule: At expiry, the account reverts to a limited state (not deleted); the Student's progress and profile are preserved. | TC-ST-01-02-033 |
| 2.4 Free Trial Activation | Rule: Trial extension is policy-governed (e.g., one extension, support-assisted) and is logged. | TC-ST-01-02-034 |
| 2.4 Free Trial Activation | Rule: A Student cannot start a second trial on the same account after one has been used. | TC-ST-01-02-035 |
| 2.4 Free Trial Activation | Rule: Trial events (activated, extended, expired) are logged with timestamp and the resulting status. | TC-ST-01-02-036 |
| 2.4 Free Trial Activation | Rule: The free trial activation is audit-logged with the account, the status change, and the timestamp. | TC-ST-01-02-037 |

## 2.1 Student Registration

### TC-ST-01-02-001 — "Sign Up as Student" entry point on the registration page
**Type:** Positive
**Covers:** 2.1 → "Sign Up as Student" entry point on the registration page; Rule: Both the Terms & Conditions and Privacy Policy checkboxes are mandatory; the account cannot be created without them.
**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: "Sign Up as Student" entry point on the registration page.
2. Observe the result and verify the full behavior: "Sign Up as Student" entry point on the registration page.
**Expected Result:** "Sign Up as Student" entry point on the registration page — delivered exactly as documented.
**Priority:** Critical

### TC-ST-01-02-002 — Basic information capture: full name, email, phone, password, confirm password
**Type:** Positive
**Covers:** 2.1 → Basic information capture: full name, email, phone, password, confirm password; Rule: The email must be unique; a duplicate registration is blocked and routed to the login/reset path.
**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: Basic information capture: full name.
2. Observe the result and verify the full behavior: Basic information capture: full name, email, phone, password, confirm password.
**Expected Result:** Basic information capture: full name, email, phone, password, confirm password — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-003 — Password strength validation (length, character mix) with inline feedback
**Type:** Edge
**Covers:** 2.1 → Password strength validation (length, character mix) with inline feedback; Rule: The password must meet the strength policy; weak passwords are rejected with specific, actionable hints.
**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: Password strength validation (length.
2. Observe the result and verify the full behavior: Password strength validation (length, character mix) with inline feedback.
**Expected Result:** Password strength validation (length, character mix) with inline feedback — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-004 — Terms & Conditions acceptance (mandatory checkbox)
**Type:** Positive
**Covers:** 2.1 → Terms & Conditions acceptance (mandatory checkbox); Rule: For minors, the parent email is captured for consent but does not block registration if left blank (the platform's child-safety policy governs follow-up).
**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: Terms & Conditions acceptance (mandatory checkbox).
2. Observe the result and verify the full behavior: Terms & Conditions acceptance (mandatory checkbox).
**Expected Result:** Terms & Conditions acceptance (mandatory checkbox) — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-005 — Privacy Policy acceptance (mandatory checkbox)
**Type:** Positive
**Covers:** 2.1 → Privacy Policy acceptance (mandatory checkbox); Rule: The verification link is single-use and time-limited; an expired link produces a "link expired — request a new one" message.
**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: Privacy Policy acceptance (mandatory checkbox).
2. Observe the result and verify the full behavior: Privacy Policy acceptance (mandatory checkbox).
**Expected Result:** Privacy Policy acceptance (mandatory checkbox) — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-006 — Optional parent email capture for minors (under 18)
**Type:** Positive
**Covers:** 2.1 → Optional parent email capture for minors (under 18); Rule: Registration attempts (success, duplicate, validation failure) are logged with timestamp, IP, and outcome.
**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: Optional parent email capture for minors (under 18).
2. Observe the result and verify the full behavior: Optional parent email capture for minors (under 18).
**Expected Result:** Optional parent email capture for minors (under 18) — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-007 — Duplicate detection: block registration if the email is already registered, with a "log in" or "forgot password" path
**Type:** Edge
**Covers:** 2.1 → Duplicate detection: block registration if the email is already registered, with a "log in" or "forgot password" path; Rule: The student registration is audit-logged with the account, the outcome, 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: Duplicate detection: block registration if the email is already registered.
2. Observe the result and verify the full behavior: Duplicate detection: block registration if the email is already registered, with a "log in" or "forgot password" path.
**Expected Result:** Duplicate detection: block registration if the email is already registered, with a "log in" or "forgot password" path — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-008 — Account creation in pending-verification state on successful submission
**Type:** Positive
**Covers:** 2.1 → Account creation in pending-verification state on successful submission
**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: Account creation in pending-verification state on successful submission.
2. Observe the result and verify the full behavior: Account creation in pending-verification state on successful submission.
**Expected Result:** Account creation in pending-verification state on successful submission — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-009 — Verification email dispatch with a single-use link
**Type:** Edge
**Covers:** 2.1 → Verification email dispatch with a single-use link
**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: Verification email dispatch with a single-use link.
2. Observe the result and verify the full behavior: Verification email dispatch with a single-use link.
**Expected Result:** Verification email dispatch with a single-use link — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-010 — Registration attempt logging (success, duplicate, validation failure)
**Type:** Edge
**Covers:** 2.1 → Registration attempt logging (success, duplicate, validation failure)
**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: Registration attempt logging (success.
2. Observe the result and verify the full behavior: Registration attempt logging (success, duplicate, validation failure).
**Expected Result:** Registration attempt logging (success, duplicate, validation failure) — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-011 — Audit logging of the student registration
**Type:** Positive
**Covers:** 2.1 → Audit logging of the student registration
**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 student registration.
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 Email Verification

### TC-ST-01-02-012 — Verification email with a single-use, time-limited link
**Type:** Edge
**Covers:** 2.2 → Verification email with a single-use, time-limited link; Rule: The verification link is single-use and time-limited; reusing or expiring it produces a reissue path, not a silent failure.
**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: Verification email with a single-use.
2. Observe the result and verify the full behavior: Verification email with a single-use, time-limited link.
**Expected Result:** Verification email with a single-use, time-limited link — delivered exactly as documented.
**Priority:** Critical

### TC-ST-01-02-013 — Verification code entry as an alternative to the link
**Type:** Positive
**Covers:** 2.2 → Verification code entry as an alternative to the link; Rule: Resends are rate-limited to prevent email abuse.
**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: Verification code entry as an alternative to the link.
2. Observe the result and verify the full behavior: Verification code entry as an alternative to the link.
**Expected Result:** Verification code entry as an alternative to the link — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-014 — Account activation on successful verification
**Type:** Positive
**Covers:** 2.2 → Account activation on successful verification; Rule: An unverified account has limited access and is prompted to verify on every login.
**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: Account activation on successful verification.
2. Observe the result and verify the full behavior: Account activation on successful verification.
**Expected Result:** Account activation on successful verification — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-015 — "Verify now" prompt shown on login for unverified accounts
**Type:** Positive
**Covers:** 2.2 → "Verify now" prompt shown on login for unverified accounts; Rule: Changing the email address triggers re-verification of the new address; the old address remains active until the new one is verified.
**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: "Verify now" prompt shown on login for unverified accounts.
2. Observe the result and verify the full behavior: "Verify now" prompt shown on login for unverified accounts.
**Expected Result:** "Verify now" prompt shown on login for unverified accounts — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-016 — Resend verification with rate limiting
**Type:** Edge
**Covers:** 2.2 → Resend verification with rate limiting; Rule: Verification events (sent, clicked, verified, expired, resent) are logged with timestamp and channel.
**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: Resend verification with rate limiting.
2. Observe the result and verify the full behavior: Resend verification with rate limiting.
**Expected Result:** Resend verification with rate limiting — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-017 — Expired-link handling with a reissue option
**Type:** Edge
**Covers:** 2.2 → Expired-link handling with a reissue option; Rule: The email verification is audit-logged with the account, the outcome, 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: Expired-link handling with a reissue option.
2. Observe the result and verify the full behavior: Expired-link handling with a reissue option.
**Expected Result:** Expired-link handling with a reissue option — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-018 — Re-verification when the email address is changed later
**Type:** Positive
**Covers:** 2.2 → Re-verification when the email address is changed later
**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: Re-verification when the email address is changed later.
2. Observe the result and verify the full behavior: Re-verification when the email address is changed later.
**Expected Result:** Re-verification when the email address is changed later — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-019 — Verification status visibility in the profile
**Type:** Positive
**Covers:** 2.2 → Verification status visibility in the profile
**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: Verification status visibility in the profile.
2. Observe the result and verify the full behavior: Verification status visibility in the profile.
**Expected Result:** Verification status visibility in the profile — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-020 — Verification event logging (sent, clicked, verified, expired, resent)
**Type:** Edge
**Covers:** 2.2 → Verification event logging (sent, clicked, verified, expired, resent)
**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: Verification event logging (sent.
2. Observe the result and verify the full behavior: Verification event logging (sent, clicked, verified, expired, resent).
**Expected Result:** Verification event logging (sent, clicked, verified, expired, resent) — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-021 — Audit logging of the email verification
**Type:** Positive
**Covers:** 2.2 → Audit logging of the email verification
**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 email verification.
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 Onboarding Flow (Profile Setup)

### TC-ST-01-02-022 — Step 1 — Basic information: date of birth, grade/level, education board, school name (optional), city, province
**Type:** Positive
**Covers:** 2.3 → Step 1 — Basic information: date of birth, grade/level, education board, school name (optional), city, province; Rule: Required fields (grade, education board, at least one subject, learning style) must be completed; optional fields (school name) can be skipped.
**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: Step 1 — Basic information: date of birth.
2. Observe the result and verify the full behavior: Step 1 — Basic information: date of birth, grade/level, education board, school name (optional), city, province.
**Expected Result:** Step 1 — Basic information: date of birth, grade/level, education board, school name (optional), city, province — delivered exactly as documented.
**Priority:** Critical

### TC-ST-01-02-023 — Step 2 — Learning preferences: subjects needing most help (multi-select), preferred learning style (visual, auditory, kinesthetic, mixed), study time preference (morning, afternoon, evening, late night), daily study time available (slider)
**Type:** Positive
**Covers:** 2.3 → Step 2 — Learning preferences: subjects needing most help (multi-select), preferred learning style (visual, auditory, kinesthetic, mixed), study time preference (morning, afternoon, evening, late night), daily study time available (slider); Rule: The flow can be paused and resumed; progress is saved between steps.
**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: Step 2 — Learning preferences: subjects needing most help (multi-select), preferred learning style (visual, auditory, kinesthetic, mixed), study time preference (morning, afternoon, evening, late night), daily study time available (slider).
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

### TC-ST-01-02-024 — Step 3 — Goals & motivation: academic goals (multi-select), target grade/score per subject, important exam dates
**Type:** Positive
**Covers:** 2.3 → Step 3 — Goals & motivation: academic goals (multi-select), target grade/score per subject, important exam dates; Rule: Target scores and exam dates are validated (e.g., score within 0–100, exam date in the future).
**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: Step 3 — Goals & motivation: academic goals (multi-select).
2. Observe the result and verify the full behavior: Step 3 — Goals & motivation: academic goals (multi-select), target grade/score per subject, important exam dates.
**Expected Result:** Step 3 — Goals & motivation: academic goals (multi-select), target grade/score per subject, important exam dates — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-025 — Progress indicator across the three steps with the ability to go back and edit
**Type:** Positive
**Covers:** 2.3 → Progress indicator across the three steps with the ability to go back and edit; Rule: Changing the grade or education board after onboarding may require re-selecting subjects that are not available in the new context.
**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: Progress indicator across the three steps with the ability to go back and edit.
2. Observe the result and verify the full behavior: Progress indicator across the three steps with the ability to go back and edit.
**Expected Result:** Progress indicator across the three steps with the ability to go back and edit — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-026 — Skip option for optional fields (required fields must be completed)
**Type:** Positive
**Covers:** 2.3 → Skip option for optional fields (required fields must be completed); Rule: The completed profile drives recommendations, the Smart Study Planner, and the AI Study Companion; an incomplete profile limits personalization.
**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: Skip option for optional fields (required fields must be completed).
2. Observe the result and verify the full behavior: Skip option for optional fields (required fields must be completed).
**Expected Result:** Skip option for optional fields (required fields must be completed) — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-027 — Profile completion status shown until the flow is finished
**Type:** Positive
**Covers:** 2.3 → Profile completion status shown until the flow is finished; Rule: Onboarding completion (and each step save) is logged with timestamp and the fields changed.
**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: Profile completion status shown until the flow is finished.
2. Observe the result and verify the full behavior: Profile completion status shown until the flow is finished.
**Expected Result:** Profile completion status shown until the flow is finished — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-028 — Personalized recommendations generated from the completed profile
**Type:** Positive
**Covers:** 2.3 → Personalized recommendations generated from the completed profile; Rule: The onboarding flow is audit-logged with the account, the completion state, 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: Personalized recommendations generated from the completed profile.
2. Observe the result and verify the full behavior: Personalized recommendations generated from the completed profile.
**Expected Result:** Personalized recommendations generated from the completed profile — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-029 — Onboarding completion event logging
**Type:** Positive
**Covers:** 2.3 → Onboarding completion event logging
**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: Onboarding completion event logging.
2. Observe the result and verify the full behavior: Onboarding completion event logging.
**Expected Result:** Onboarding completion event logging — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-030 — Audit logging of the onboarding flow
**Type:** Positive
**Covers:** 2.3 → Audit logging of the onboarding flow
**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 onboarding flow.
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.4 Free Trial Activation

### TC-ST-01-02-031 — "Start Free Trial" entry point (registration and course browsing)
**Type:** Positive
**Covers:** 2.4 → "Start Free Trial" entry point (registration and course browsing); Rule: The trial requires no payment information; a card is only requested when converting to a paid plan.
**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 Free Trial" entry point (registration and course browsing).
2. Observe the result and verify the full behavior: "Start Free Trial" entry point (registration and course browsing).
**Expected Result:** "Start Free Trial" entry point (registration and course browsing) — delivered exactly as documented.
**Priority:** Critical

### TC-ST-01-02-032 — 7-day full-access trial period with no credit card required
**Type:** Positive
**Covers:** 2.4 → 7-day full-access trial period with no credit card required; Rule: The trial is 7 days of full access; the countdown is shown on the dashboard.
**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: 7-day full-access trial period with no credit card required.
2. Observe the result and verify the full behavior: 7-day full-access trial period with no credit card required.
**Expected Result:** 7-day full-access trial period with no credit card required — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-033 — Trial activation: account upgraded to trial status, full content access unlocked
**Type:** Positive
**Covers:** 2.4 → Trial activation: account upgraded to trial status, full content access unlocked; Rule: At expiry, the account reverts to a limited state (not deleted); the Student's progress and profile are preserved.
**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: Trial activation: account upgraded to trial status.
2. Observe the result and verify the full behavior: Trial activation: account upgraded to trial status, full content access unlocked.
**Expected Result:** Trial activation: account upgraded to trial status, full content access unlocked — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-034 — Trial countdown shown on the dashboard (days remaining)
**Type:** Positive
**Covers:** 2.4 → Trial countdown shown on the dashboard (days remaining); Rule: Trial extension is policy-governed (e.g., one extension, support-assisted) and is logged.
**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: Trial countdown shown on the dashboard (days remaining).
2. Observe the result and verify the full behavior: Trial countdown shown on the dashboard (days remaining).
**Expected Result:** Trial countdown shown on the dashboard (days remaining) — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-035 — Welcome email with getting-started tips on activation
**Type:** Positive
**Covers:** 2.4 → Welcome email with getting-started tips on activation; Rule: A Student cannot start a second trial on the same account after one has been used.
**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: Welcome email with getting-started tips on activation.
2. Observe the result and verify the full behavior: Welcome email with getting-started tips on activation.
**Expected Result:** Welcome email with getting-started tips on activation — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-036 — Trial expiry: account reverts to a limited state with a prompt to choose a plan
**Type:** Edge
**Covers:** 2.4 → Trial expiry: account reverts to a limited state with a prompt to choose a plan; Rule: Trial events (activated, extended, expired) are logged with timestamp and the resulting status.
**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: Trial expiry: account reverts to a limited state with a prompt to choose a plan.
2. Observe the result and verify the full behavior: Trial expiry: account reverts to a limited state with a prompt to choose a plan.
**Expected Result:** Trial expiry: account reverts to a limited state with a prompt to choose a plan — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-037 — Trial extension policy (e.g., one extension, support-assisted)
**Type:** Positive
**Covers:** 2.4 → Trial extension policy (e.g., one extension, support-assisted); Rule: The free trial activation is audit-logged with the account, the status change, 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: Trial extension policy (e.g..
2. Observe the result and verify the full behavior: Trial extension policy (e.g., one extension, support-assisted).
**Expected Result:** Trial extension policy (e.g., one extension, support-assisted) — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-038 — Trial status visibility (active, days remaining, expired)
**Type:** Edge
**Covers:** 2.4 → Trial status visibility (active, days remaining, expired)
**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: Trial status visibility (active.
2. Observe the result and verify the full behavior: Trial status visibility (active, days remaining, expired).
**Expected Result:** Trial status visibility (active, days remaining, expired) — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-039 — Trial event logging (activated, extended, expired)
**Type:** Edge
**Covers:** 2.4 → Trial event logging (activated, extended, expired)
**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: Trial event logging (activated.
2. Observe the result and verify the full behavior: Trial event logging (activated, extended, expired).
**Expected Result:** Trial event logging (activated, extended, expired) — delivered exactly as documented.
**Priority:** High

### TC-ST-01-02-040 — Audit logging of the free trial activation
**Type:** Positive
**Covers:** 2.4 → Audit logging of the free trial activation
**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 free trial activation.
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
