Design Review — Exploration A
QF Design A - Design Review & Progress Audit
Date: December 18, 2025 Version: 1.0 Purpose: Track alignment between mockup implementation and design specifications
Reference Documents
This review compares the current mockup against:
| Document | Location | Purpose |
|---|---|---|
| QuranFlow-User-Capability-Map.md | /reviews/ |
Defines [Core], [Supporting], [Enhancement] tasks |
| QuranFlow-Architecture-Proposals.md | /reviews/ |
Section 4: Proposal A (Weekly Rhythm) specifications |
| App-Redesign-Field-Guide-WWDC25.md | /reviews/reference-docs/ |
Design principles and diagnostic tests |
Executive Summary
Overall Alignment: ~80%
The mockup successfully addresses most P0 critical issues and implements the core weekly learning cycle. Key strengths include the Schedule page (near-perfect alignment) and Submit page (excellent UX). The primary gap is temporal orientation on the Today page.
Screen-by-Screen Assessment
Today Page (client/src/pages/today.tsx)
Alignment: 60%
What's Implemented
| Element | Status | Notes |
|---|---|---|
| Week indicator | ⚠️ Partial | Shows "Current Week 8" but missing "of 15" |
| Feedback alert | ✅ Complete | Dismissible card when feedback ready |
| Weekly lesson card | ✅ Complete | Title, description, "Start Lesson" CTA |
| Live session preview | ✅ Complete | "Live Class - Today, 7:00 PM" |
| Coach connection | ✅ Complete | Shows coach name and status |
| Progress bar | ✅ Complete | Visual progress indicator |
What's Missing (per Proposal A Section 4.3)
| Element | Proposal A Spec | Priority |
|---|---|---|
| "Week X of 15" format | Giant header showing position in semester | High |
| Level indicator | "Level 4 • Tajweed Rules" below week | High |
| Days countdown | "3 days until Week 9 unlocks" | High |
| Submission status card | "🎙 YOUR SUBMISSION" with status | High |
| Video progress | "✓ Video 1/3 ○ Video 2/3 ○ 3/3" | Medium |
| Timezone on sessions | "12:00 PM EST" format | Medium |
| Multiple session cards | Show all today's sessions | Low |
WWDC25 "3 Questions" Test
| Question | Requirement | Current | Verdict |
|---|---|---|---|
| Where am I? | "Week 8 of 15, Level 4" | "Thursday, Dec 19" + "Current Week 8" | ⚠️ Weak |
| What can I do? | Clear primary action | "Start Lesson" button visible | ✅ Pass |
| Where can I go? | Navigation visible | 5-tab bottom nav | ✅ Pass |
Learn Page (client/src/pages/learn.tsx)
Alignment: 90%
What's Implemented
| Element | Status | Notes |
|---|---|---|
| Level/Semester header | ✅ Complete | "Level 4 • Semester 1" badge |
| Segmented control | ⚠️ Partial | [Current Week] [All Weeks] - missing [Past Levels] |
| Week cards (expandable) | ✅ Complete | Click to expand week content |
| Video list with progress | ✅ Complete | Checkboxes per video, duration shown |
| Learning objectives | ✅ Complete | Blue info box with bullet points |
| Unified submission view | ✅ Complete | "Submit" tab within each week card |
| Resources tab | ✅ Complete | PDFs and materials accessible |
| "Feedback Ready" badge | ✅ Complete | Shows on Week 7 |
| Video dialog | ✅ Complete | Modal with play button |
What's Missing
| Element | Proposal A Spec | Priority |
|---|---|---|
| "Past Levels" segment | Third option in segmented control | Low |
Submit Page (client/src/pages/submit.tsx)
Alignment: 95%
What's Implemented
| Element | Status | Notes |
|---|---|---|
| Week indicator | ✅ Complete | "Week 8" shown |
| Attempts counter | ✅ Complete | "1 of 2 Attempts Remaining" |
| Quranic text display | ✅ Complete | Amiri font, RTL, proper Arabic |
| Recording interface | ✅ Complete | Tap to record with visual feedback |
| Playback before submit | ✅ Complete | Play button after recording |
| Re-record option | ✅ Complete | Retry button visible |
| Confirmation dialog | ✅ Complete | "Submit Recitation?" with warning |
| Success state | ✅ Complete | Checkmark animation + message |
| Submission history | ✅ Complete | Week 7, Week 6 entries |
| "Feedback Ready" badge | ✅ Complete | Green badge on Week 7 |
| Feedback sheet | ✅ Complete | Bottom sheet with audio playback |
| Follow-up questions | ✅ Complete | Text input to reply to coach |
Architectural Note
Proposal A specifies submission should be unified into the Learn tab, with this tab slot used for "Progress" instead. Current implementation has Submit as a standalone tab. This is a design decision to evaluate.
Schedule Page (client/src/pages/schedule.tsx)
Alignment: 95%
What's Implemented
| Element | Status | Notes |
|---|---|---|
| Timezone selector | ✅ Complete | Dropdown with EST, GMT, GST, AEDT |
| Timezone display | ✅ Complete | "NY (EST)" shown in header |
| Week navigator | ✅ Complete | < Week 8 > arrows |
| Calendar strip | ✅ Complete | Sun-Thu day selector |
| Session type filters | ✅ Complete | All / Classes / QRCs buttons |
| Session cards | ✅ Complete | Type badge, time, title, description |
| "Join Zoom" button | ✅ Complete | Primary CTA on live sessions |
| "Add to Calendar" button | ✅ Complete | + button on each session |
| RSVP toggle | ✅ Complete | "Going" state with checkmark |
| Attendee avatars | ✅ Complete | Shows "+12" attendee count |
| Session details dialog | ✅ Complete | Modal with full info |
| Deadline cards | ✅ Complete | "Submission Deadline - Friday" |
What's Missing
| Element | Proposal A Spec | Priority |
|---|---|---|
| None identified | - | - |
More Page (client/src/pages/more.tsx)
Alignment: 90%
What's Implemented
| Element | Status | Notes |
|---|---|---|
| Profile card | ✅ Complete | Avatar, name, level, semester |
| Stats display | ✅ Complete | Weeks completed, Avg Score |
| My Quran Coach section | ✅ Complete | Photo, name, Message button, Bio button |
| Message dialog | ✅ Complete | Textarea to compose message |
| Personal Details menu | ✅ Complete | Account section |
| Subscription menu | ✅ Complete | Account section |
| Notifications menu | ✅ Complete | Account section |
| Help Center | ✅ Complete | Support section |
| App Settings | ✅ Complete | Support section |
| Sign Out | ✅ Complete | Red button at bottom |
| Version number | ✅ Complete | "v2.4.0 (Build 152)" |
What's Missing
| Element | Proposal A Spec | Priority |
|---|---|---|
| Font settings UI | Quranic font selector in Settings | Medium |
| Session recordings archive | Link to past session recordings | Low |
P0 Critical Issues Status
From the original usability audit, 7 P0 issues were identified:
| P0 Issue | Status | How Addressed in Mockup |
|---|---|---|
| Video playback failure | ⚠️ UI exists | Dialog with play button (no real video streaming) |
| Missing submission history | ✅ Fixed | History section in Submit page with Week 7, Week 6 |
| Broken notifications | ✅ Fixed | Dismissible feedback alert on Today page |
| Non-standard Quranic font | ✅ Fixed | Amiri font used by default in Submit page |
| Inadequate profile | ✅ Fixed | Full profile card with stats in More page |
| No timezone on live sessions | ✅ Fixed | Timezone dropdown + display in Schedule |
| Feedback hard to find | ✅ Fixed | Feedback sheet in Submit + alert on Today |
Summary: 6 of 7 P0 issues addressed (video is mocked but UI exists)
[Core] Task Coverage from Capability Map
Section 2: Pre-Semester Phase
| Task ID | Task | Priority | Status | Notes |
|---|---|---|---|---|
| 2A.1 | Sign up for program | [Core] | N/A | External (out of app scope) |
| 2A.2 | Complete initial assessment | [Core] | ❌ Not implemented | No assessment screen |
| 2A.3 | Receive level placement | [Core] | ❌ Not implemented | No placement flow |
| 2A.4 | Know who my Quran Coach is | [Supporting] | ✅ Implemented | More page → My Quran Coach |
| 2B.1 | Understand program structure | [Supporting] | ❌ Not implemented | No onboarding/tutorial |
| 2B.2 | Know when semester starts | [Core] | ❌ Not implemented | No countdown/date |
| 2B.3 | Understand my weekly schedule | [Core] | ✅ Implemented | Schedule tab |
Section 3: Weekly Learning Cycle
| Task ID | Task | Priority | Status | Notes |
|---|---|---|---|---|
| 3A.1 | Know which week I'm on | [Core] | ⚠️ Partial | Shows "Week 8" but not "of 15" |
| 3A.2 | Access this week's lesson | [Core] | ✅ Implemented | Today + Learn pages |
| 3A.3 | Watch instruction videos | [Core] | ⚠️ UI only | Dialog exists, no real playback |
| 3A.4 | Track progress within lessons | [Supporting] | ✅ Implemented | Checkboxes per video |
| 3A.5 | Mark lesson complete | [Supporting] | ✅ Implemented | Implicit via checkboxes |
| 3B.1 | Know what to submit | [Core] | ✅ Implemented | Submit page shows passage |
| 3B.2 | View Quranic text to recite | [Core] | ✅ Implemented | Amiri font, RTL display |
| 3B.3 | Record my recitation | [Core] | ✅ Implemented | Recording interface |
| 3B.4 | Review before submitting | [Core] | ✅ Implemented | Playback + re-record |
| 3B.5 | Submit to Quran Coach | [Core] | ✅ Implemented | Confirmation dialog |
| 3B.6 | View submission history | [Supporting] | ✅ Implemented | History section |
| 3C.1 | Know when feedback is ready | [Core] | ✅ Implemented | Alert on Today |
| 3C.2 | Listen to TA audio feedback | [Core] | ✅ Implemented | Feedback sheet |
| 3C.3 | Ask follow-up questions | [Supporting] | ✅ Implemented | Text input in sheet |
| 3D.1 | See my weekly schedule | [Core] | ✅ Implemented | Schedule tab |
| 3D.2 | Understand session types | [Supporting] | ✅ Implemented | Type badges |
| 3D.3 | Know timezone/timing | [Core] | ✅ Implemented | Timezone selector |
| 3D.4 | Join a live session | [Core] | ✅ Implemented | "Join Zoom" button |
| 3D.5 | Add session to calendar | [Supporting] | ✅ Implemented | + button |
| 3D.6 | RSVP for sessions | [Enhancement] | ✅ Implemented | RSVP toggle |
Section 6: Cross-Cutting Capabilities
| Task ID | Task | Priority | Status | Notes |
|---|---|---|---|---|
| 6A.1 | View/edit profile | [Supporting] | ✅ Implemented | More page profile |
| 6B.1 | Set Quranic text font | [Core] | ⚠️ Partial | Default font works, no settings UI |
| 6B.2 | Manage notifications | [Core] | ✅ UI exists | Menu item in More |
| 6C.1 | Access support/help | [Supporting] | ✅ Implemented | Help Center in More |
| 6E.1 | Understand app structure | [Core] | ✅ Implemented | 5-tab bottom nav |
Proposal A Architectural Comparison
Tab Bar Structure
| Position | Proposal A | Current Implementation | Match |
|---|---|---|---|
| Tab 1 | Today | Today | ✅ |
| Tab 2 | Learn | Learn | ✅ |
| Tab 3 | Schedule | Submit | ❌ Different |
| Tab 4 | Progress | Schedule | ❌ Different |
| Tab 5 | More | More | ✅ |
Key Deviation: Proposal A unifies submission INTO the Learn tab and uses slot 3 for Schedule and slot 4 for Progress (feedback history + stats + achievements). Current implementation has Submit as a standalone tab.
Today Page Layout Comparison
| Element | Proposal A Wireframe | Current Implementation |
|---|---|---|
| Header | "☪ QuranFlow [Bell] [User]" | "[Date] [Avatar]" |
| Week display | "WEEK 8 OF 15" (giant) | "Current Week 8" (small badge) |
| Level display | "Level 4 • Tajweed Rules" | Not shown |
| Progress | "53%" with bar | "65%" with bar |
| Countdown | "3 days until Week 9 unlocks" | Not shown |
| Lesson card | Title + video progress + CTA | Title + description + CTA |
| Submission card | Status + date + CTA | Not on Today (separate tab) |
| Sessions | Multiple cards with timezone | Single card without timezone |
Gap Analysis Summary
High Priority Gaps
- "Week X of 15" format - Critical for orientation
- Level indicator on Today - Users need context
- Days until next week countdown - Temporal anchoring
- Submission status on Today - Core info missing from dashboard
Medium Priority Gaps
- Tab structure alignment - Submit vs Progress decision needed
- Pre-semester countdown/onboarding - No first-time experience
- Font settings UI - Feature exists but not accessible
- Video progress on Today card - Shows which videos watched
Low Priority Gaps
- "Past Levels" segment in Learn - Archive access
- Session recordings archive - Mentioned in Proposal A
- Multiple session cards on Today - Currently shows one
Recommendations
Immediate Priorities
- Update Today page header to show "Week 8 of 15 • Level 4"
- Add countdown text below week indicator
- Add submission status card to Today page
Design Decisions Needed
- Tab structure: Keep Submit as standalone, or merge into Learn and create Progress tab?
- Pre-semester flow: Scope for initial implementation?
What's Working Well (Preserve)
- Schedule page design and functionality
- Submit page UX (confirmation, history, feedback sheet)
- More page organization (Coach section, profile)
- Learn page unified week view
Appendix: File Inventory
| File | Purpose | Lines |
|---|---|---|
client/src/pages/today.tsx |
Home/dashboard | 139 |
client/src/pages/learn.tsx |
Curriculum browser | 281 |
client/src/pages/submit.tsx |
Recording & history | 251 |
client/src/pages/schedule.tsx |
Calendar & sessions | 276 |
client/src/pages/more.tsx |
Profile & settings | 163 |
client/src/App.tsx |
Router & layout | 30 |
Appendix: Capability Map Implementation Checklist
Visual overview of implementation status against the User Capability Map.
Legend:
[x]= Implemented[~]= Partial implementation[ ]= Not implemented
Section 2: Pre-Semester Phase
- 2.1 Sign up for program (external - out of scope)
- 2.2 Complete initial assessment
- 2.3 Receive level placement
- 2.4 Meet assigned Quran Coach (More page → My Quran Coach)
- 2.5 Understand program structure (orientation)
- 2.6 Explore available resources
- 2.7 Know when semester starts
- 2.8 Attend pre-semester sessions
Pre-Semester Coverage: 1/8 (12%)
Section 3: Weekly Learning Cycle
3A: Lessons
- [~] 3A.1 Know which week I'm on (shows "Week 8" but not "of 15")
- 3A.2 Access this week's lesson
- [~] 3A.3 Watch instruction videos (UI exists, no real playback)
- 3A.4 Track progress within lesson (multi-video)
- 3A.5 Mark lesson complete
- 3A.6 Access previous weeks' lessons
- 3A.7 Access previous levels' lessons (missing "Past Levels" segment)
3B: Submissions
- 3B.1 Know what to submit
- 3B.2 View Quranic text to recite
- 3B.3 Record my recitation
- 3B.4 Review recording before submitting
- 3B.5 Submit to Quran Coach
- 3B.6 Retract/undo accidental submission
- 3B.7 View submission history
- 3B.8 Understand submission limits (2 per week)
3C: Feedback
- 3C.1 Know when feedback is ready
- 3C.2 Listen to TA audio feedback
- 3C.3 View written feedback/notes
- 3C.4 Ask follow-up questions
- 3C.5 Access feedback history/archives
- 3C.6 Understand my performance over time
3D: Live Classes
- 3D.1 Know my weekly schedule
- 3D.2 See upcoming live sessions
- 3D.3 Understand session types (Level Class, QRC, Office Hours)
- 3D.4 Know timezone/timing
- 3D.5 Join a live session
- 3D.6 Add session to personal calendar
- 3D.7 RSVP/indicate intent to attend
3E: Recordings
- 3E.1 Find recordings of missed sessions
- 3E.2 Filter/search recordings
- 3E.3 Watch recorded session
- 3E.4 Track which recordings I've watched
3F: Progress Tracking
- [~] 3F.1 See overall progress in level (progress bar exists)
- 3F.2 See lessons completed
- 3F.3 See submissions completed
- 3F.4 See grades/performance
- 3F.5 Compare to expected pace
Weekly Cycle Coverage: 26/35 (74%)
Section 4: End of Semester Phase
- 4.1 Complete end-of-course assessment
- 4.2 View final results
- 4.3 Graduate to next level
- 4.4 Transition to Year 2 (from Level 4)
End of Semester Coverage: 0/4 (0%)
Section 5: Year 2 Differences
- 5.1 Year 2 overview (how it differs)
- 5.2 Appointment booking
- 5.3 Appointment management
- 5.4 Elective selection
Year 2 Coverage: 0/4 (0%) (Year 2 is out of initial scope)
Section 6: Cross-Cutting Capabilities
- 6.1 Profile management
- [~] 6.2 Settings (font, notifications, display) (menu exists, font UI missing)
- 6.3 Support/Help access
- 6.4 TA communication (Message dialog in More)
- 6.5 Community board/Conversations
- [~] 6.6 Notifications (receiving) (feedback alert exists)
- 6.7 Resources access
Cross-Cutting Coverage: 4/7 (57%)
Summary Statistics
| Section | Implemented | Partial | Not Done | Total | Coverage |
|---|---|---|---|---|---|
| 2. Pre-Semester | 1 | 0 | 7 | 8 | 12% |
| 3. Weekly Cycle | 22 | 4 | 9 | 35 | 74% |
| 4. End of Semester | 0 | 0 | 4 | 4 | 0% |
| 5. Year 2 | 0 | 0 | 4 | 4 | 0% |
| 6. Cross-Cutting | 4 | 2 | 1 | 7 | 57% |
| TOTAL | 27 | 6 | 25 | 58 | 57% |
Note: Year 2 (Section 5) and End of Semester (Section 4) are intentionally out of scope for initial mockup. Excluding these, coverage is 27/50 (54%) fully implemented with 6 partial.
End of Document