Feature Owner: Joshua Uriel Tribiana
Module: Player
Priority: P1
Week 5 Sprint: Implemented
Date: 06-30-2026
EXECUTIVE SUMMARY
What is this feature?
The Feedback Modal is the learner-facing overlay that appears after a question is submitted and provides contextual feedback for the selected answer. It is designed to reinforce correct understanding, explain mistakes, and guide the learner to the next step.
Why does it matter?
Feedback is a core part of the learning loop. Without a clear, visible response after an answer is submitted, learners can feel uncertain about their result or lose momentum. This modal turns the submission event into a purposeful moment of guidance.
What’s the MVP scope?
The current implementation includes:
A learner-facing feedback dialog after question submission
Status-based visual treatment for correct, partial, wrong, and default feedback
Integration with the quest player’s question state flow
A blocking experience that prevents accidental dismissal while feedback is visible
1. USER PAIN POINT & SOLUTION
Current State (Without Feature)
Learners can answer a question but receive no structured, visible explanation of how their response performed. This makes the experience feel unfinished and can reduce confidence in the content.
Pain Point
Emotional: Confusion or uncertainty after answering a question
Functional: No immediate explanation tied to the learner’s choice
Business Impact: Lower engagement and weaker instructional clarity
Future State (With Feature)
After a learner submits an answer, they immediately see a clear feedback message that explains their result and helps them understand what to do next.
Marketing Hook
“Turn every answer into a learning moment with immediate, polished feedback.”
2. CODEBASE ASSESSMENT
Current Implementation Status
The feedback modal is already wired into the learner experience and appears as part of the question submission flow.
Primary Files
components/learner/FeedbackModal.tsx
Main modal component
Renders the feedback message, title, and CTA
Uses status-based styling and iconography
components/learner/QuestionBlock.tsx
Hosts the modal inside the question UI
Passes the current feedback state into the modal
Owns the
showingFeedbackandcurrentFeedbackstateDetermines which feedback text should be shown after submission
lib/learner/feedback-constants.tsx
Stores the visual styles, icons, labels, and status mapping for feedback types
components/learner/QuestPlayer.tsx
Integrates the question-block feedback flow into the overall learner experience
Current Behavior Summary
The modal becomes visible when a learner submits a question with feedback content
The feedback is derived from the selected choice, choice status, or hook-generated result logic
The modal uses a branded visual treatment depending on whether the result is correct, wrong, partial, or default
The dialog is intentionally non-dismissible through standard close interactions while feedback is active
Strengths Already Present
The modal is tightly coupled to the real learner flow rather than being a disconnected demo component
Status-based styling makes the experience visually intuitive
The current implementation supports both single-select and checkbox-style question flows
Gaps / Hardening Opportunities
The modal is currently driven entirely by client-side state and the current question payload
There is no dedicated analytics event for feedback modal views or acknowledgements
The experience could be extended to support richer feedback templates or richer CTA flows later
3. 4D FRAMEWORK MAPPING
Diagnose
Learners need immediate, clear confirmation after answering a question so they can understand whether they were successful and what to learn next.
Design
The modal offers a deliberate, high-contrast feedback moment with a focused message and a simple acknowledgement action.
Develop
The UI is implemented as a reusable learner component and pulled into the question-block experience with minimal friction.
Deliver
The learner sees a polished feedback moment immediately after submission, reinforcing the instructional intent of the question.
4. USER FLOWS
Entry Point
A learner is interacting with a question node inside the quest player.
Success Criteria
The learner sees feedback after submitting an answer
The feedback is relevant to the selected choice or answer outcome
The learner can acknowledge the feedback and continue the flow
Main Flow (Happy Path)
Learner selects an answer choice
Learner submits the question
The quest player computes the appropriate feedback content and status
The feedback modal opens with the message and result styling
Learner clicks “Got it” to acknowledge and continue
Edge Cases
No feedback content available: The modal does not open and the flow continues quietly
Checkbox question: Feedback is derived from the combined selected choices and correctness rules
True/false question: Feedback is derived from the mapped answer status
No valid submission: The modal does not open because the submission state is invalid
Decision Points
IF feedback text exists → the modal opens
IF no feedback text is present → no modal appears
IF the learner acknowledges → the state clears and the journey continues
5. INFORMATION ARCHITECTURE
Primary Information (Always visible)
Feedback title such as “Correct!”, “Not quite…”, or “Partially correct”
The feedback body text
A single acknowledgement button
Secondary Information
Status-colored icon and container styling
Result-specific emphasis based on correctness state
Internal state mapping of the question result
Choice status values used to compute the displayed feedback
Actions
Primary CTA:
Got it
Secondary Actions:
None in the current implementation
6. WIREFRAMES
Excluded — existing UI
Key Screens:
Question card with answer choices
Feedback modal overlay after submission
Acknowledgement state that returns the learner to the normal flow
Annotations:
The modal appears only after a valid question submission
It is intentionally blocking to preserve focus on the feedback message
It uses high-contrast, status-aware styling for clarity
7. WIREFLOWS
Creator Setup───────────── +----------------------+| Edit Decision Edge |+----------------------+ | v+----------------------+| Enter Outcome Title || & Feedback Text |+----------------------+ | v+----------------------+| Save to Quest || Database |+----------------------+ Learner Experience────────────────── +----------------------+| Learner Reaches || Decision Node |+----------------------+ | v+----------------------+| Select Choice |+----------------------+ | v+----------------------+| Retrieve Edge || Feedback |+----------------------+ | v+----------------------+| Display Feedback || Modal |+----------------------+ | v+----------------------+| Click Continue |+----------------------+ | v+----------------------+| Navigate to Next || Node |+----------------------+ | └───────────────► (Repeat until quest ends)
8. PROTOTYPE
Excluded — feature is fully implemented.
How to test:
Open a learner quest with a question node
Select an answer and submit it
Confirm the feedback modal appears with the correct status styling
Click “Got it” and confirm the experience returns to the normal question flow
9. FRONTEND STATE MODEL
Core State
The modal is controlled by two values in the quest player hook:
showingFeedbackcurrentFeedback
Shape of Feedback
The feedback object is currently modeled as:
export type Feedback = { text: string; status?: "correct" | "partial" | "wrong";};
Source of Truth
The selected answer choice provides the feedback text in many cases
The question submission handler derives a status from the selected answer and its correctness metadata
The modal itself is stateless and only renders what it receives from props
10. COMPONENT RESPONSIBILITIES
FeedbackModal
Responsibilities:
Render the modal content
Apply status-specific styling and iconography
Ensure the feedback is shown in a focused, non-dismissible state
QuestionBlock
Responsibilities:
Render the question UI
Pass the current feedback state into the modal
Trigger the feedback modal when the learner submits
useQuestPlayer
Responsibilities:
Decide whether feedback should appear
Determine the feedback text and status for the current submission
Reset the modal state when the learner moves on or restarts the quest
11. VISUAL SYSTEM
Status Mapping
Correct: green treatment
Wrong: red treatment
Partial: yellow treatment
Default: blue treatment
UI Elements
Icon in a circular badge
Large heading label
Centered feedback message in a bordered card-like panel
Single CTA button labeled “Got it”
Interaction Rules
Standard close actions are prevented while the modal is open
The modal is meant to feel like a short, guided pause rather than a general-purpose dialog
12. DATA REQUIREMENTS
Frontend Needs
The UI needs:
The current feedback text
The feedback status for styling and labeling
A way to acknowledge the modal and clear the state
No Backend Requirements
This feature does not currently depend on any API route or persistence layer. It is entirely driven by the client-side quest flow.
Who can access this feature?
Learner: ✓
Creator: ✗
Reviewer: ✗
No special authorization is required. The modal is part of the learner experience and uses the currently active quest state.
14. ERROR HANDLING
Common Cases
No feedback text exists for the submitted choice
The modal is opened without a valid feedback object
The learner attempts to navigate while feedback is still active
Handling Guidance
Gracefully suppress the modal if no feedback is present
Keep the state transitions deterministic when the learner moves back or restarts the quest
15. TESTING CHECKLIST
Happy Path
Selecting and submitting a correct answer shows a feedback modal
Selecting and submitting an incorrect answer shows a feedback modal
The modal displays the expected title, message, and styling
The learner can acknowledge the modal and continue
Edge Cases
Questions without feedback text do not show the modal
Checkbox and true/false questions display the expected feedback behavior
Restarting or navigating backward clears the modal state correctly
16. OPEN QUESTIONS
For Frontend
Should the modal support richer actions such as “Try again” or “See explanation” in a later iteration?
Should feedback modal events be tracked for analytics and instructional tuning?
For Product
Should this modal become a reusable pattern for other learner interactions such as completion states or hinting?
17. OUT OF SCOPE (v1.1+)
Not planned in the current implementation:
Backend-stored feedback templates
Analytics dashboards tied to feedback modal interactions
Multi-step explanation flows inside the modal
18. SUCCESS METRICS
How will we know this experience is working well?
Learners clearly understand whether their answer was correct
Questions feel more instructional and less abrupt
The modal is acknowledged quickly and does not feel obstructive
19. DEPENDENCIES
This feature depends on:
The learner question state managed by the quest player hook
The feedback content attached to answer choices
The shared learner UI component system
These features depend on this:
The learner quiz and question experience
Any future instructional feedback system for quest content
20. TIMELINE & OWNERSHIP
Implementation Ownership
Owner: Joshua Uriel Tribiana
QA: Christian