v2 Admin Spec — Index & Foundations

QuranFlow Admin Backend Redesign -- Specification Index (v2)

1. Purpose and Scope

This spec covers the complete redesign of the QuranFlow admin backend navigation and screen structure. v2 is the current spec — it extends the v1 Enhanced Candidate A architecture with the 11 decisions captured in the Apr 15, 2026 stakeholder review (see ../v2-review/FRAMEWORK-V2.md). The spec is mockup-ready: detailed enough for a designer to create wireframes without asking clarifying questions.

v1 is preserved in ../admin-spec/ as a reference baseline. v1 cross-references remain valid for any NOT-ADDRESSED section; v2 updates are documented inline with ADR references and HTML comments.

Covers: Admin backend navigation, all screen specifications, billing integration, role-based access, and the new Communication domain.

Does not cover: Student-facing iOS app, checkout frontend, Stripe API implementation details, mobile responsive design.


2. Design Foundations

The Enhanced Candidate A architecture was selected through a structured multi-candidate evaluation in Workstream 1, scoring 30/35 (highest of 3 candidates). It was then augmented with the strongest ideas from Candidates B and C. The Apr 15, 2026 stakeholder review extended the architecture with five Accepted Decision Records (ADR-001 through ADR-005) documented in ../v2-review/decisions/.

Core (from Candidate A -- scored 30/35, highest of 3 candidates)

Incorporated from Candidate B (dashboard depth)

Incorporated from Candidate C (search + content integration)

v2 Deviations from v1 Core Patterns

Evidence base


3. Master Navigation Tree

Dashboard (operational overview with alerts and phase prompts)

Student Management
  Students
    [Student Detail Page] (multi-tab profile)
      [Tab: Profile]
      [Tab: Submissions]
      [Tab: Payments]
      [Tab: Appointments]
      [Tab: Semester History]
      [Tab: Admin Notes] (NEW v2 — see 03-student-management.md §3.9.5)
      [Tab: Actions]
  Submissions (Assessments)
  Promoted Students
  Failed Sign Ups

Semester Management
  Semesters
    [Semester Hub Page] (multi-tab semester view)
      [Tab: Overview]
      [Tab: Setup Checklist]
      [Tab: Enrollment]                        <!-- v2: gains "Registration" filter preset + co-located Level 0 bulk-promote per ADR-005 -->
      [Tab: End Checklist] (RENAMED v2)        <!-- v2: replaces Close Workflow per ADR-001 -->
      [Tab: Onboarding Support] (NEW v2)       <!-- v2: see Framework v2 §3.2 -->
  Welcome Package
  Tags
  Operations (bulk actions)                    <!-- v2: 4 cards, down from 5 — Level 0 promote moved to Enrollment tab per ADR-005 -->

<!-- v2: Email Management removed from this domain per ADR-003 -->

Content
  Video Lessons
  Resources
  Recordings
  Tutorials
  MCQ Questions
  Quizzes

Scheduling
  Calendar View
  Live Sessions
  Upcoming Appointments
  TA Schedules
  Holidays
  One-to-One Appointment Usability (NEW v2)    <!-- v2: see Framework v2 §3.4 and 06-scheduling.md §7 -->

Teacher Management
  Teaching Assistants
    [TA Detail Page] (multi-tab TA view)
      [Tab: Profile]
      [Tab: Schedule]
      [Tab: Students & Groups]
      [Tab: Performance]
  Teacher Assignment Criteria                   <!-- v2: rewritten as hybrid matrix per ADR-002 -->
  TA Reports
  Student Groups

Billing & Payments
  Payment Overview
  Payments (transaction history)
  Payment Plans                                 <!-- v2: grouped presentation (Standard / Family / Scholarships / Discounts) per Decision #8 -->
  Coupons
  Family Plans
  Scholarships & Deferments

Reporting
  Student Report
  Referrals
  Specific Reports
  Student Composition
  Active Semester Enrollment      <!-- v2 NEW per Apr 22 -->
  Revenue Breakdown               <!-- v2 NEW per Apr 22 -->
  Installment→One-Time Conversion <!-- v2 nice-to-have stub per Apr 22 -->
  Notification/Email Impact       <!-- v2 nice-to-have stub per Apr 22 -->
  Logs

Admin & System
  Admins
  Settings (General)
  Support Links
  Issue Queue

<!-- v2: Notifications removed from this domain per ADR-003 — redirect preserved in 10-admin-system.md §4 for cross-ref traceability -->

Communication (NEW DOMAIN — v2)                 <!-- v2: 9th top-level domain per ADR-003 -->
  Automation Emails                              <!-- absorbed from Semester Management > Email Management, enhanced with Sequence View -->
  Blast Emails (NEW v2)
  Push Notifications                             <!-- absorbed from Admin & System > Notifications, enhanced with recipient filtering -->
  Announcement Board (NEW v2)
  Private Messages (NEW v2)
  Communication Logs (NEW v2)

Screen counts (v2): 9 top-level domains + Dashboard, 39 screens total.


4. Screen Placement Map

Complete mapping of all v1 screens to their v2 locations, plus v2 additions. Where a screen is unchanged from v1, the "Change Type" column lists the v1 status (MOVED/ENHANCED/MERGED/REBUILT); v2 changes are flagged separately.

# Current Location (pre-redesign) Screen v2 Location Change Type
1 Top-level Dashboard Dashboard REBUILT (v1)
2 Top-level Semesters Semester Management > Semesters ENHANCED (Hub Page, 5 tabs in v2)
3 Program Video Lessons Content > Video Lessons MOVED
4 Program Submissions Student Management > Submissions MOVED
5 Program Resources Content > Resources MOVED
6 Program Live Sessions Scheduling > Live Sessions MOVED
7 Program Recordings Content > Recordings MOVED
8 Program Tutorials Content > Tutorials MOVED
9 Program MCQ Questions Content > MCQ Questions MOVED
10 Program Quizzes Content > Quizzes MOVED
11 People Students Student Management > Students ENHANCED (Detail Page — 7 tabs in v2)
12 People Teaching Assistants Teacher Management > Teaching Assistants ENHANCED (Detail Page)
13 People Admins Admin & System > Admins MOVED
14 People Students Management DISSOLVED (v1) Tools redistributed
15 Reports Student Report Reporting > Student Report MOVED
16 Reports TA Reports Teacher Management > TA Reports MOVED
17 Reports Payments Billing & Payments > Payments MOVED
18 Reports Promoted Students Student Management > Promoted Students MOVED
19 Reports Failed Sign Ups Student Management > Failed Sign Ups MOVED
20 Reports Referrals Reporting > Referrals MOVED
21 Reports Specific Reports Reporting > Specific Reports MOVED
22 Appointments Upcoming Appointments Scheduling > Upcoming Appointments MOVED
23 Appointments TA Schedules Scheduling > TA Schedules MOVED
24 Appointments Holidays Scheduling > Holidays MERGED (+ Live Session Holidays)
25 Settings Notifications Communication > Push Notifications MOVED + ABSORBED (v2)
26 Settings Tags Semester Management > Tags MOVED
27 Settings Payment Plans Billing & Payments > Payment Plans MOVED
28 Settings Coupons Billing & Payments > Coupons MOVED
29 Settings Settings (General) Admin & System > Settings MOVED
30 Settings Operations Semester Management > Operations MOVED
31 Settings Email Management Communication > Automation Emails MOVED + ABSORBED (v2)
32 Settings Welcome Package Semester Management > Welcome Package MOVED
33 Settings Teacher Assignment Criteria Teacher Management > Teacher Assignment Criteria MOVED + REWRITTEN
34 Settings Logs Reporting > Logs MOVED
35 Students Mgmt Support Links Admin & System > Support Links MOVED
v2 net-new screens
36 Blast Emails Communication > Blast Emails NEW (v2)
37 Announcement Board Communication > Announcement Board NEW (v2)
38 Private Messages Communication > Private Messages NEW (v2)
39 Communication Logs Communication > Communication Logs NEW (v2)
40 One-to-One Appointment Usability Scheduling > One-to-One Appointment Usability NEW (v2)

Total v2 screens: 39 (rows 1–13 and 15–40; #14 dissolved).

Dissolved Screen #14 Redistribution (v1)

The former Students Management screen's contents were redistributed in v1:


5. New Screens Inventory

Preserved from v1 (unchanged entries)

Screen Domain Type Purpose
Dashboard Top-level Full rebuild Operational alerts, phase prompts, quick actions.
Student Detail Page Student Management Multi-tab entity page Consolidated student view.
Semester Hub Page Semester Management Multi-tab entity page Consolidated semester view.
TA Detail Page Teacher Management Multi-tab entity page 4 tabs (Profile, Schedule, Students & Groups, Performance).
Calendar View Scheduling New screen Unified visual calendar across live sessions and 1:1 appointments.
Payment Overview Billing & Payments New screen Aggregate billing health dashboard.
Family Plans Billing & Payments New screen Family group billing management.
Scholarships & Deferments Billing & Payments New screen Special billing arrangement management.
Student Composition Reporting New screen Student body breakdown report.
Student Groups Teacher Management Surfaced to nav Groups list previously only accessible through individual TA pages.
Issue Queue Admin & System New screen Student-reported issues and admin-to-admin tickets.

Modified in v2

Screen Domain Type v2 Purpose
End Checklist (tab on Semester Hub) Semester Management Modified in v2 Flat end-of-semester checklist structurally parallel to Setup Checklist. Canonical 5 steps: All Submissions Reviewed, Pass/Fail, Send Pass/Fail Emails, Set Up Automatic Payments, Semester Close. Mix of automatic (backend-triggered) + semi-automatic + fully-manual fallbacks. Supports custom items. No gated steps. See docs/v2-review/STAKEHOLDER-ANSWERS-2026-04-21.md §1.

NEW in v2

Screen Domain Type Purpose
Onboarding Support (tab on Semester Hub) Semester Management NEW v2 tab Groups student-facing onboarding affordances: Telegram/WhatsApp group links with student-access scoping, welcome videos for home screen, countdown timer to next semester start.
Admin Notes (tab on Student Detail) Student Management NEW v2 tab Private admin notes on a student. Not visible to the student or TA. Supports append-only timestamped entries for audit.
One-to-One Appointment Usability Scheduling NEW v2 screen Usability dashboard showing gender-split slot fill rates, week-by-week underutilized slots, remove-slot action. Drilldown to Calendar View.
Blast Emails Communication NEW v2 screen Compose and send one-off emails to a filtered/manual recipient list. Template library, recipient filtering, scheduling, pre-draft for TA. Net-new capability — stakeholder quote: "we don't currently have that as an option at all."
Announcement Board Communication NEW v2 screen One-way admin→users in-app announcements. Replaces the community board concept. Audience filtering, expiry, optional read receipts.
Private Messages Communication NEW v2 screen Bidirectional student↔teacher/admin inbox. Thread-based conversational messaging. Core screen for the pre-draft pattern (ADR-004).
Communication Logs Communication NEW v2 screen Unified audit trail across all five outbound channels (automation email, blast email, push, announcement, private message). Distinct from Reporting > Logs.

6. Cross-Domain Workflow Index

These are the core admin workflows mapped to their screen sequences. Workflow improvement metrics measured against the v1 baseline; v2 deltas noted where applicable.

WF1: Semester Setup (2-3x/year, Critical)

Current state: 19+ screens, 50-80 clicks, 3 external tools (Google Sheets, Vimeo, manual checklists) v2: 8-10 screens, 20-35 clicks, 1 external tool (Vimeo for video URLs)

Screen sequence (v2):

  1. Dashboard — phase prompt shows "Semester Setup" with progress bar
  2. Semester Management > Semesters — create new semester or clone from previous (v2: auto-clone on create; manual Clone-from-Previous retained)
  3. Semester Hub > Setup Checklist tab — guided checklist with completion status
  4. Content > Video Lessons — deep link from checklist, semester pre-filtered
  5. Click "return to checklist" → Semester Hub > Setup Checklist tab
  6. Content > Resources — deep link, semester pre-filtered
  7. Click "return to checklist" → Semester Hub > Setup Checklist tab
  8. Semester Hub > Enrollment tab — review counts, assign students; v2 adds "Registration" filter preset + Level 0 bulk-promote here per ADR-005
  9. Teacher Management > Teaching Assistants — assign TAs; v2: configure via hybrid matrix on Teacher Assignment Criteria per ADR-002
  10. Semester Management > Welcome Package — configure welcome email content
  11. Communication > Automation Emails (filtered to this semester via Setup Checklist deep link) — schedule enrollment confirmation and lifecycle emails
  12. Semester Hub > Onboarding Support tab (NEW v2) — configure Telegram/WhatsApp links, welcome videos, countdown timer

WF2: Student Support (frequent, ad-hoc)

Current state: 5-7 screens, 15-25 clicks, 3 external tools (Stripe dashboard, Google Sheets, WhatsApp) v2: 1-2 screens, 4-7 clicks, 0 external tools

Screen sequence (v2):

  1. Global Search — type student name from any screen
  2. Student Management > Students > [Student Detail Page] — direct landing
  3. All information available via tabs:
    • Profile tab: contact info, enrollment status, level, TA assignment
    • Submissions tab: audio submissions with grades and feedback (v2: reject-under-review action; bulk delete; per-week exception UI)
    • Payments tab: Stripe subscription status, payment history, failed payments (inline, no Stripe dashboard needed)
    • Appointments tab: upcoming and past 1:1 sessions (v2: semester filter)
    • Semester History tab: progression across semesters
    • Admin Notes tab (NEW v2): private admin-only notes
    • Actions tab: lifecycle actions including v2 "Enroll in Mastery Course"
  4. If conversational follow-up needed → Communication > Private Messages (cross-domain deep link from Profile tab "Message" action)

WF3: Semester End (2-3x/year, Critical)

Current state (v1 baseline): 8+ screens, 40-70 clicks, 3 external tools (Google Sheets, Stripe dashboard, manual tracking)

v2 target: flat 5-step End Checklist with automatic + semi-automatic steps plus optional custom items. Screen and click counts are TBD — see §10 for measurement caveat; expected similar to or better than v1 given automation.

Screen sequence (v2):

  1. Dashboard — phase prompt shows "Semester End" with End Checklist progress (e.g., "3 of 5 steps complete").
  2. Semester Management > Semesters > [Semester Hub > End Checklist tab] — flat list of the 5 canonical steps plus any custom items; each row shows status and an "Open" link to the step's detail view. See 04-semester-management.md §3.8 for the full definition.
  3. Step-level work — each step either auto-completes via backend trigger or surfaces a manual fallback view when clicked:
    • Step 1 — All Submissions Reviewed auto-completes after the submission close date when no pending submissions remain; "Open" deep-links to Submissions (03-student §3) filtered to pending.
    • Step 2 — Pass/Fail auto-completes when all Level 1–4 students have final_status assigned (Mastery auto-passed at Step 5). "Open" deep-links to Students list (03-student §2) filtered to L1–4 without status; TAs can set status for their own students, admins for any.
    • Step 3 — Send Pass/Fail Emails auto-completes when every student has been sent the appropriate template (pass / fail-with-opt-in / mastery-elective). "Open" surfaces unsent students with a per-student "Send Now" fallback (templates live in 11-communication §2 Automation Emails).
    • Step 4 — Set Up Automatic Payments auto-completes when all passing L1–4 students have Stripe next-semester subscriptions created. "Open" deep-links to the End Checklist Payment Setup Queue (08-billing §2.9) with per-student manual setup buttons; Mastery and failing students are excluded by scope.
    • Step 5 — Semester Close fires fully automatically at midnight EST on semester.end_date; no admin action.
  4. Cross-domain jumps as needed (driven by deep links from the steps above):
    • Students with pending submissions → 03-student §3 Submissions
    • L1–4 students awaiting Pass/Fail → 03-student §2 Students list
    • Unsent end-of-semester emails → 03-student §2 Students list (filtered by email status) via 11-communication
    • Passing students needing payment setup → 08-billing §2.9 End Checklist Payment Setup Queue
    • Student departures → Student Detail > Actions tab (linked deactivation preserved; leavers need no checklist step per STAKEHOLDER-ANSWERS-2026-04-21)
    • End-of-semester announcements → optionally 11-communication > Announcement Board

What's different from v1:

WF4: Daily Monitoring (every session)

Current state: 4-5 screens, 12-18 clicks, 3 external tools (Stripe dashboard, Google Sheets, email) v2: 1-3 screens, 3-8 clicks, 0 external tools

Screen sequence (v2):

Path A — Failed payments:

  1. Dashboard — alert tile "3 Failed Payments"
  2. Billing & Payments > Payment Overview — filtered to failed
  3. Student Detail > Payments tab — full history, retry or contact

Path B — TA performance:

  1. Dashboard — alert tile "2 TAs: Response Time > 48h"
  2. Teacher Management > Teaching Assistants — filtered
  3. TA Detail > Performance tab — response time trends, submission backlog (v2: avg-grade-given metric added)

Path C — Communication monitoring (NEW v2):

  1. Dashboard — communication tiles: "Unread Private Messages (5)" or "Scheduled Blast: sending in 2h"
  2. Click tile → Communication > Private Messages (filtered to Unread) or Communication > Blast Emails (scheduled queue)
  3. Triage or reschedule as needed

Path D — App issues:

  1. Dashboard — "App Issues" tile
  2. Admin & System > Issue Queue — triage new issues
  3. Optional follow-up → Communication > Private Messages (cross-domain via Issue Detail "Start Message" action — boundary preserved per ADR-003 §1.1)

WF5: Scheduling / Appointments (regular)

Current state: 4-6 screens, 12-20 clicks, 2 external tools v2: 1-2 screens, 5-8 clicks, 0 external tools (plus optional usability review via new One-to-One Usability screen)

Screen sequence (v2):

Path A — Calendar management:

  1. Scheduling > Calendar View — unified view; v2 adds cancel-session, mark-inactive, reassign actions
  2. Filter by TA, gender, or level
  3. Click to create/edit directly

Path B — TA availability:

  1. Scheduling > TA Schedules — date-bound slots (v2), bulk-add (v2)

Path C — Usability review (NEW v2):

  1. Scheduling > One-to-One Appointment Usability — gender-split fill rates, underutilized slots
  2. Drill down → Calendar View filtered to the underutilized slots
  3. Remove-slot action directly from usability dashboard

WF6: TA Onboarding (per-semester)

Current state: 6-8 screens, 20-35 clicks, 1 external tool (Google Sheets) v2: 2-3 screens, 8-12 clicks, 0 external tools

Screen sequence (v2):

  1. Teacher Management > Teaching Assistants — "Add TA"; v2 filter adds semester scope + per-week session/slot metrics
  2. TA Detail > Profile tab — personal info, credentials, role permissions
  3. TA Detail > Schedule tab — weekly availability (v2: date-bound slots + bulk-add)
  4. TA Detail > Students & Groups tab — assign students/groups
  5. Teacher Management > Teacher Assignment Criteria (v2: hybrid matrix) — set capacity, level specialization, new-vs-returning routing for the new TA; review weighted-distribution preview

WF7: Outbound Communication (NEW v2)

Current state: No dedicated workflow — blast email required mail merge outside the system; push notifications had no recipient filtering; 1:1 messaging happened in WhatsApp/email. v2: Dedicated Communication domain consolidates all outbound messaging.

Screen sequence — Blast Email (typical):

  1. Dashboard — "Send Blast Email" quick action, or direct sidebar entry
  2. Communication > Blast Emails > Compose view — recipient filter or manual selection; compose message
  3. Preview modal → Test Send to self → Schedule or Send Now
  4. Optional: Draft for TA — select TA; draft goes to TA's outbox; TA sends from own account (production flow per ADR-004)
  5. Communication > Communication Logs — verify delivery status, retry failures if any

Screen sequence — Pre-drafted 1:1 Message (ADR-004 flow):

  1. Admin composes on Communication > Private Messages > New Message or from Student Detail > Profile > "Message" or Teacher Detail > "Pre-draft for [TA]"
  2. Select TA as sender identity → save draft
  3. TA reviews in their own account (production-only queue), edits if desired, sends
  4. Thread visible to student as originating from their TA; reply-to correctly routes to TA

7. Open Questions (with Best-Guess Defaults)

These questions remain unanswered from stakeholder interviews, workstream analysis, and the Apr 15 review. Each has a documented assumption sufficient for mockup creation; all require validation before production.

Preserved from v1

# Question Source Assumption Affects
OQ1 How many family plans per semester? WS2 10-20 families (~5% of students). Build full CRUD. Family Plans screen complexity
OQ2 How many scholarship students and distinct levels? WS2 15-30 students, 3 tiers (Full, 50%, 25%). Scholarship management scope
OQ3 How many deferment students and typical period? WS2 5-10 per semester, 1-semester typical. Use Stripe pause_collection. Deferment feature depth
OQ4 Is FE database or QuranFlow subscriptions table canonical? WS2 QuranFlow subscriptions table as canonical. Billing data source queries
OQ5 Content cloning: linked or independent copies? WS1.5 Independent copies. Setup Checklist clone feature
OQ6 What Stripe account is used? WS2 Single Stripe account (fe-checkout). API key configuration
OQ7 Should semester-end billing use Subscription Schedules? WS2 Immediate creation with ability to backdate. End Checklist automatic billing item
OQ8 Google Play IAP subscription volume? WS2 <5%. Show IAP as read-only note on Payments tab. Payments tab scope
OQ9 Support staff Stripe dashboard access? Interview Support staff do NOT have Stripe access. Role-based access design

v2 additions — ADR-001 (End Checklist)

All ADR-001 questions (OQ-E1 through OQ-E5) are resolved 2026-04-21 per docs/v2-review/STAKEHOLDER-ANSWERS-2026-04-21.md §1. See that document for the canonical 5-step End Checklist definition (All Submissions Reviewed, Pass/Fail, Send Pass/Fail Emails, Set Up Automatic Payments, Semester Close). The resolved statuses below cite Lejla's verbatim definitions.

# Question Assumption Affects
OQ-E1 What are the default End Checklist items? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS §1 — Lejla's canonical 5-step End Checklist replaces the TBD scaffold: Step 1 All Submissions Reviewed, Step 2 Pass/Fail, Step 3 Send Pass/Fail Emails, Step 4 Set Up Automatic Payments, Step 5 Semester Close. End Checklist content; WF3 metric validity
OQ-E2 Per item: what constitutes "complete"? Which are fully automatic vs. semi-automatic (admin reviews + confirms)? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS §1 — Step 1 automatic (submission close date + zero pending); Step 2 semi-automatic (TAs/admins set final_status per student); Step 3 automatic send + manual per-student fallback; Step 4 automatic + manual per-student fallback; Step 5 fully automatic at midnight EST on semester.end_date. Status computation; backend trigger spec
OQ-E3 What is the trigger/deadline for each automatic step? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS §1 — Step 1 triggers when submission close date passes AND zero pending submissions remain; Step 2 completes when 100% of L1–L4 students have final_status; Step 3 completes when all students sent appropriate email; Step 4 completes when all eligible passing L1–L4 students have payment_setup_status='created'; Step 5 fires at midnight EST on semester.end_date. Backend cron/triggers
OQ-E4 Does the End Checklist support custom items (like Setup Checklist does)? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS §1 — Yes; custom items section at bottom of checklist mirrors Setup Checklist UX. §3.8 feature parity with Setup Checklist
OQ-E5 How is the W4 risk (payment before promotion) handled if backend automation is delayed at launch? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS §1 — Mitigated by Step 4's scope definition: "L1–L4 passing students only" (final_status = 'pass'). Ordering is enforced by scope (Step 4 depends on Step 2's output) rather than by UI gating. Mastery students excluded from Step 4 (self-enroll); failing students excluded (opt-in via Step 3 email link). Production-readiness gating

v2 additions — ADR-002 (Assignment Criteria)

All ADR-002 questions (OQ-A1, OQ-A2, OQ-A3) are resolved 2026-04-21 per docs/v2-review/STAKEHOLDER-ANSWERS-2026-04-21.md §2 (defaults #2, #3 + Q8) — deterministic distribution, manual fallback queue, Semester Hub entry point confirmed sufficient.

# Question Assumption Affects
OQ-A1 Weighted distribution: deterministic from capacity or admin-adjustable weights? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS §2 — Deterministic from TA capacity confirmed. Algorithm spec
OQ-A2 Conflict resolution when no TA matches all constraints? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS §2 — Manual placement queue as fallback confirmed. Unassignable student handling
OQ-A3 Semester binding: Semester Hub entry point sufficient, or explicit selector needed? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS §2 — Semester Hub entry point provides sufficient semester context (no explicit semester selector on Assignment Criteria screen). Screen header UI

v2 additions — ADR-003 (Communication domain)

# Question Assumption Affects
OQ-C1 Sequence View data source: only searched student, or sample when none searched? Searched student only. Automation Emails §2.5
OQ-C2 Template library: unified across Automation + Blast, or separate? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS (default #4) — Unified template library confirmed. Templates tagged by source_domain are reusable across Automation + Blast contexts. email_templates schema
OQ-C3 Scheduling: send-now only, or future scheduling for Blast / Push / Announcements? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS (default #5) — Mockup supports send-now + save-draft only. Scheduling deferred to production. Announcement Board continues to use expires_at for post expiry (distinct from scheduled publishing). Compose UI
OQ-C4 Saved audiences: shared across admins or private per admin? Shared. Recipient filter §1.5
OQ-C5 Announcement read receipts: default on, opt-in per post, or unsupported? Opt-in per post. read_receipt_enabled flag
OQ-C6 Announcement Board: can TAs post, or admin-only? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS (default #6, CHANGED) — Admins AND TAs can post to Announcement Board. TAs manage their own posts (edit, delete, set audience, set expiry). Moderation of others' posts is admin-only. Role visibility §5.9
OQ-C7 Private Messages: multi-party threads, or strictly 1:1? 1:1. Thread data model
OQ-C8 Private Messages: attachment scope (file types, size, storage)? UI affordance only in mockup; production TBD. §6.5 composer
OQ-C9 Private Messages: who can students initiate new threads with? Assigned TA and admins only. Routing rules
OQ-C10 Communication Logs: TA sidebar visibility for self-audit? Hidden from TA sidebar. Role visibility §7.9
OQ-C11 Pre-draft expiry: expire or persist? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS (default #10) — Pre-drafts persist indefinitely. No expiry in v2. Draft lifecycle
OQ-C12 Pre-draft multi-TA: one message broadcast to many TAs each personalizing? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS (default #9) — Single TA per draft. Multi-TA batched pre-drafting is not in v2 scope. Compose UX
OQ-C13 Pre-draft channels: which support it? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS (default #8) — Private Messages and Blast Emails support pre-drafting; Push Notifications and Announcement Board do not. Per-screen UI
OQ-C14 Automation Emails: dynamic fields at send time vs. frozen at template creation? Dynamic per-send substitution. Template variable semantics
OQ-C15 Email sending infrastructure (Postmark/SendGrid/SES)? Existing infrastructure; mockup does not simulate send. Delivery-status granularity
OQ-C16 Announcement expiry vs. delete: remain visible in archive or disappear? Disappear from active view, remain in admin history. App-side behavior

v2 additions — ADR-004 (Pre-drafted messaging)

v2 additions — ADR-005 (Registration Tracker integration)

# Question Assumption Affects
OQ-R1 Does "Registration" preset include returning students re-enrolling, or only first-time Level 0? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS (default #11) — Both new + returning enrollees to the current semester, with a sub-filter toggle "New This Semester Only" that narrows to new Level 0 (first-time enrollees). Filter definition
OQ-R2 Does bulk-promote button appear only during a defined registration window, or year-round? Resolved 2026-04-21 per STAKEHOLDER-ANSWERS (default #12) — Year-round whenever Level 0 students exist (visibility tied to Level filter = Level 0 OR sub-filter "New This Semester Only" being active). Toolbar visibility logic

v2 additions — Framework v2 TBDs (ambiguities carried forward from gap analyses)

# Question Source Assumption
OQ-F1 "Resend Credentials" on Failed Sign-ups: temp password or login credentials? Framework v2 §3.1 Temp password with one-time link.
OQ-F2 Appointment time display: student timezone or EST? Framework v2 §3.1 Admin-local (EST) by default.
OQ-F3 Level 0 bulk-promote target: Level 1 (spec) or "level two" (ramblings)? Framework v2 §3.1 Resolved 2026-04-21 per STAKEHOLDER-ANSWERS-2026-04-21.md — Level 2 confirmed by stakeholder. Lejla: "Level 0 is a placeholder for students whose level hasn't been assessed yet, and our default has always been to place them at Level 2. The spec saying Level 1 is an error."
OQ-F4 Submission Close Date field scope: per-semester / per-level / per-assessment? Framework v2 §3.2 Per-assessment (most granular).
OQ-F5 "One-to-One Schedules" checklist item: distinct from TA Schedules or same? Framework v2 §3.2 Same — deep link to TA Schedules.
OQ-F6 Telegram/WhatsApp access control model (role / level / per-student)? Framework v2 §3.2 Per-level with per-student override.
OQ-F7 Welcome videos scope: tutorial vs. semester-specific? Framework v2 §3.2 Semester-specific with tutorial fallback.
OQ-F8 Zoom integration UI scope (sync button, pending-review queue, manual override)? Framework v2 §3.3 All three — sync button, review queue, override.
OQ-F9 "Needs replacement" flag computation: manual, automatic from TA break, or both? Framework v2 §3.4 Both — auto from break + manual toggle.
OQ-F10 Calendar gender filter: TA gender or student gender? Framework v2 §3.4 Student gender for appointments; TA gender for live sessions.
OQ-F11 Bulk-add UX pattern for live sessions / slots? Framework v2 §3.4 Modal with inline add rows.

8. Glossary

Term Definition
Semester An enrollment period (typically 16-17 weeks) containing content, student progress, and scheduling.
Enrollment A record connecting a user to a semester at a specific level (table: user_link_level_tag).
Level Student progression stage: Level 0 (Starter) → Level 1 → Level 2 → Level 3 → Level 4 → Year 2.
TA Teaching Assistant — reviews student submissions, conducts 1:1 appointments.
EOC End of Course — assessment determining promotion eligibility.
Passing threshold 3.5 marks minimum to pass.
Linked deactivation Combined action: deactivate student account + cancel Stripe subscription in one step.
Setup Checklist Semester Hub tab tracking which content/config items have been set up for a new semester. Flat, non-gated.
End Checklist (v2) Semester Hub tab tracking end-of-semester tasks as a flat, non-gated 5-step list structurally parallel to Setup Checklist. Canonical 5 steps: Step 1 All Submissions Reviewed, Step 2 Pass/Fail, Step 3 Send Pass/Fail Emails, Step 4 Set Up Automatic Payments, Step 5 Semester Close. Automatic items driven by backend triggers; manual items admin-completed. Supports custom items. See docs/v2-review/STAKEHOLDER-ANSWERS-2026-04-21.md §1 and 04-semester-management.md §3.8.

| Phase prompt | Dashboard element showing current semester phase (Setup / Active / End) with progress indicator. | | Entity page | Rich multi-tab detail page consolidating information about a student, semester, or TA into a single view. | | Domain | Top-level navigation section organized around an area of responsibility (e.g., Student Management, Communication). | | Family Plan | A billing arrangement where multiple students share a single Stripe subscription with a family discount. | | Scholarship | A reduced-rate billing arrangement with defined tiers (Full, 50%, 25%). | | Deferment | A temporary pause on billing via Stripe's pause_collection, typically one semester. | | Issue Queue | Centralized screen for student-reported issues and admin tickets. Remains in Admin & System per ADR-003 §1.1. Not a messaging channel — see Private Messages. | | Global search | Search bar resolving student/TA/semester names to entity pages from any screen. | | Alert tile | Dashboard component surfacing an operational metric (e.g., failed payments count) with click-through. | | Assignment Matrix (v2) | Per-TA configuration table on Teacher Assignment Criteria with columns for capacity, level specialization, new-vs-returning routing. Complemented by a small set of named rules (gender match, repeat-student auto-assign, distribution strategy) and a read-only preview of the weighted-distribution outcome. | | Rules Engine (v1 term — superseded) | See Assignment Matrix. v1 used a generic prioritized rule catalog; v2 replaces it with a per-TA matrix + named rules per ADR-002. | | Blast Email (v2) | Admin-initiated, multi-recipient, one-time email send. Distinct from Automation Emails (event-triggered, per-student). Supports recipient filtering, manual selection, scheduling, template library, and pre-draft for TA. | | Announcement Board (v2) | In-app one-way admin→users channel for non-urgent program updates. Replaces the community board concept. Supports audience filtering, expiry, optional read receipts. | | Private Message (v2) | Bidirectional thread-based message between a student and a teacher/admin. Replaces ad-hoc WhatsApp/email for student support. Admins can view all threads for moderation but cannot impersonate participants. | | Pre-drafted Message (v2) | A message composed by an admin and assigned as a draft to a TA; the TA reviews in their own account and sends from their own identity. No impersonation, single sender identity. Available on Private Messages and Blast Emails. | | Registration filter preset (v2) | Saved filter on Semester Hub > Enrollment showing all new + returning enrollees to the current semester (students with user_link_level_tag.created_at within the semester's registration window), sorted by enrollment date (newest first). An optional sub-filter toggle "New This Semester Only" narrows to new Level 0 first-time enrollees. Replaces the proposed standalone Registration Tracker screen. Co-located with Level 0 bulk-promote action (target: Level 2). | | Onboarding Support tab (v2) | Semester Hub tab grouping student-facing onboarding affordances: Telegram/WhatsApp group links, welcome videos, countdown timer to next semester. | | Admin Notes tab (v2) | Student Detail tab for private admin-only notes on a student. Not visible to student or TA. |


9. Document Index

Document Description
00-spec-index.md This file. v2 hub document: purpose, design foundations, master nav tree, screen placement map, new-screens inventory, workflows, open questions, glossary, document index, workflow improvement summary.
01-global-patterns.md Navigation shell, global search, role-based access, component patterns, Stripe data patterns, inline documentation. Sidebar definition expanded to 9 domains per ADR-003.
02-dashboard.md Operational dashboard: alert tiles, phase prompts (End phase references End Checklist per ADR-001), quick actions (Send Notification retargeted to Communication per ADR-003; Send Blast Email + Post Announcement added).
03-student-management.md Students list, Student Detail Page (7 tabs in v2 — Admin Notes added), Submissions, Promoted Students, Failed Sign Ups. Cross-ref note on Registration tracking via Semester Hub > Enrollment per ADR-005.
04-semester-management.md Semesters list, Semester Hub Page (5 tabs: Overview, Setup Checklist, Enrollment, End Checklist, Onboarding Support), Welcome Package, Tags, Operations (4 cards, down from 5). Email Management removed (absorbed by Communication). §3.8 fully rewritten for End Checklist per ADR-001.
05-content.md Video Lessons, Resources, Recordings, Tutorials, MCQ Questions, Quizzes. v2 refinements: multi-video, multi-level resource tagging, Zoom auto-upload affordances.
06-scheduling.md Calendar View, Live Sessions, Upcoming Appointments, TA Schedules, Holidays, One-to-One Appointment Usability (NEW v2 §7). v2 refinements: teacher field, recurrence, bulk-add, cancellation templates, "Needs replacement" flag.
07-teacher-management.md TA list + TA Detail Page (4 tabs), Teacher Assignment Criteria (rewritten as hybrid matrix per ADR-002), TA Reports, Student Groups.
08-billing-payments.md Payment Overview, Payments, Payment Plans (grouped presentation per Decision #8), Coupons, Family Plans, Scholarships & Deferments.
09-reporting.md Student Report, Referrals, Specific Reports, Student Composition, Active Semester Enrollment (NEW v2), Revenue Breakdown (NEW v2), Installment→One-Time Conversion (stub), Notification/Email Impact (stub), Logs. Apr 15 was Cat E — Deferred; Apr 22 session partially resolved — 2 primary reports added, 2 stubs noted. Full catalog still pending a reporting working session. CSV-only, live dashboards, no scheduled email.
10-admin-system.md Admins, Settings (General), Notifications (redirect stub — moved to Communication per ADR-003), Support Links, Issue Queue.
11-communication.md (NEW v2) 9th domain. Automation Emails, Blast Emails (NEW), Push Notifications (absorbed + enhanced), Announcement Board (NEW), Private Messages (NEW), Communication Logs (NEW). Shared Recipient Filter (§1.5), pre-draft identity model (ADR-004).

10. Workflow Improvement Summary

Quantified impact of the redesign across the core admin workflows.

Workflow Current (v1 baseline) v2 target Screen Reduction Click Reduction Ext Tools Eliminated
WF1: Semester Setup 19+ screens, 3 ext tools 8-10 screens, 1 ext tool 47-58% 56-75% 67%
WF2: Student Support 5-7 screens, 3 ext tools 1-2 screens, 0 ext tools 71-86% 65-81% 100%
WF3: Semester End 8+ screens, 3 ext tools TBD (was v1 Enhanced A: 4-6 screens, 0 ext tools) TBD TBD 100% (still targeted — external tools remain eliminated regardless of checklist shape)
WF4: Daily Monitoring 4-5 screens, 3 ext tools 1-3 screens, 0 ext tools 40-78% 56-83% 100%
WF5: Scheduling 4-6 screens, 2 ext tools 1-2 screens, 0 ext tools 58-75% 50-60% 100%
WF6: TA Onboarding 6-8 screens, 1 ext tool 2-3 screens, 0 ext tools 58-75% 60-66% 100%
WF7: Outbound Communication (NEW v2) Per-channel external tools (mail merge, WhatsApp, email) — no unified capability 1-3 screens, 0 ext tools N/A (new capability) N/A (new capability) 100% (replaces WhatsApp, external mail merge)

External tool reduction: 15+ dependencies → 1 (Vimeo for video URLs). Google Sheets eliminated. Stripe dashboard eliminated. External mail merge eliminated (new in v2 via Blast Emails). WhatsApp eliminated (new in v2 via Private Messages).

v2-specific workflow improvements beyond v1