+ You said the API became significantly faster. What was the
+ response time before and after your change? If exact numbers
+ are unavailable, explain how you measured the improvement.
+
+
+
+
+
+
+
+
+ {/* AI Recommendation */}
+
+
+
+
+
+
+
+
+ AI Recommendation
+
+
+
+ Replace broad claims with measurable evidence whenever
+ possible. Explain the baseline, your action, the measured
+ result, and the context in which the result was achieved.
+
+ Discover how difficult each topic is specifically for you.
+
+
+
+
+
+ {/* Overview */}
+
+
+
+
+
+ Personalized Difficulty Model
+
+
+
+ Difficulty is calculated from your actual performance rather than
+ relying only on predefined question labels.
+
+
+
+
+ {/* Topic Cards */}
+
+
+ {topics.map((topic) => (
+
+
+
+
+
+
+ {topic.name}
+
+
+
+ Personalized difficulty
+
+
+
+
+ {topic.difficulty}
+
+
+
+
+ {/* Difficulty Bar */}
+
+
+
+ Difficulty Score
+
+
+ {topic.score}/100
+
+
+
+
+
+
+
+
+
+ {/* Metrics */}
+
+
+
+
+
+ Accuracy
+
+
+
+ {topic.accuracy}%
+
+
+
+
+
+
+
+
+
+ Avg. Time
+
+
+
+ {topic.time}
+
+
+
+
+
+
+
+
+
+ Hints Used
+
+
+
+ {topic.hints}
+
+
+
+
+
+
+
+
+
+ Improvement
+
+
+
+ {topic.improvement}
+
+
+
+
+
+
+
+ ))}
+
+
+
+ {/* AI Insight */}
+
+
+
+
+
+
+
+
+
+ AI Calibration Insight
+
+
+
+ Arrays are currently easy for you despite their general
+ difficulty classification. Dynamic Programming remains
+ challenging because of lower accuracy, longer solving time, and
+ higher hint usage. Future practice can use these personalized
+ difficulty levels to select better questions.
+
+
+
+
+
+
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/frontend/src/pages/AIInterviewQuestionProgressiveDisclosureMode.jsx b/frontend/src/pages/AIInterviewQuestionProgressiveDisclosureMode.jsx
new file mode 100644
index 00000000..825330d0
--- /dev/null
+++ b/frontend/src/pages/AIInterviewQuestionProgressiveDisclosureMode.jsx
@@ -0,0 +1,241 @@
+import React, { useState } from "react";
+import {
+ Brain,
+ Lock,
+ ChevronRight,
+ CheckCircle2,
+} from "lucide-react";
+
+const levels = [
+ {
+ title: "Basic Clarification",
+ content:
+ "The input can contain repeated values. Consider what the expected output should be when duplicates exist.",
+ },
+ {
+ title: "Concept Hint",
+ content:
+ "Think about a data structure that allows you to quickly check whether a value has already been encountered.",
+ },
+ {
+ title: "Constraint Hint",
+ content:
+ "If the input size is very large, consider whether an O(n²) approach will scale well.",
+ },
+ {
+ title: "Approach Hint",
+ content:
+ "Traverse the input once while maintaining a collection of previously seen values.",
+ },
+ {
+ title: "Solution Guidance",
+ content:
+ "Use a hash-based set to track encountered values and detect duplicates efficiently.",
+ },
+];
+
+export default function AIInterviewQuestionProgressiveDisclosureMode() {
+ const [level, setLevel] = useState(0);
+ const [requested, setRequested] = useState(false);
+
+ const requestNextHint = () => {
+ setRequested(true);
+ setTimeout(() => setRequested(false), 300);
+ };
+
+ return (
+
+ The fewer assistance levels you require, the stronger your
+ independent problem-solving signal. Your hint usage can be
+ tracked across questions to measure improvement over time.
+