Feature/Project Proposal
would like to propose a 3-layer intelligent system for PrepPilot: an AI-Powered Adaptive Learning Engine that dynamically adjusts question difficulty based on user performance, a Real-Time Performance Analytics Dashboard to visualize progress, and a Smart Recommendations Engine to generate personalized study plans using spaced repetition.
Problem Statement
Currently, PrepPilot provides interview preparation resources in a static, one-size-fits-all manner. There is no intelligent mechanism to assess a user's current skill level dynamically, adapt question difficulty based on real-time performance, or visualize long-term progress. Users practice questions randomly without a personalized learning path, leading to inefficient preparation, poor retention, and a lack of motivation.
Proposed Solution
The project could implement a comprehensive 3-layer solution:
- Adaptive Learning Engine (Backend):
Implement an Elo-rating / Item-Response-Theory (IRT) based algorithm that dynamically adjusts question difficulty based on answer correctness, time taken per question, and topic-wise historical accuracy.
Maintain a user_skill_profile schema tracking per-topic proficiency scores (0-1000 scale).
Create API endpoints: GET /api/adaptive/next-question, POST /api/adaptive/submit-answer, GET /api/adaptive/skill-profile.
2. Real-Time Analytics Dashboard (Frontend):
Build a comprehensive analytics page featuring a Skill Radar Chart, Progress Timeline, GitHub-style Streak Heatmap, Speed vs Accuracy Scatter Plot, and Gamified Milestone Tracker.
Implement WebSocket/SSE for live updates during active practice sessions.
Add PDF/CSV export functionality for analytics reports.
3. Smart Recommendations Engine:
Suggest weak-topic focused practice sets.
Recommend revision sessions based on the SM-2 spaced repetition algorithm (forgetting curve).
Dynamically generate weekly study plans.
Alternatives Considered
Another possible solution is using static difficulty tags (Easy/Medium/Hard) or simple percentage-based progress tracking. However, static tags do not adapt to an individual's learning curve, and simple percentages lack the depth of Elo/IRT ratings needed to accurately map a user's true skill trajectory and predict optimal learning steps.
Benefits
This feature would drastically improve the user experience by providing a highly personalized and adaptive learning path. Users will study more efficiently by focusing precisely on their weak areas, retain information better through algorithmic spaced repetition, and stay motivated via visual progress tracking, streaks, and gamified milestones. This transforms PrepPilot from a simple question bank into an intelligent AI tutor.
Priority
High
Additional Context
Frontend (New Files)
frontend/
├── src/
│ ├── pages/
│ │ └── Analytics/
│ │ ├── AnalyticsDashboard.jsx
│ │ ├── SkillRadar.jsx
│ │ ├── ProgressTimeline.jsx
│ │ ├── StreakHeatmap.jsx
│ │ └── SpeedAccuracyChart.jsx
│ ├── components/
│ │ └── AdaptiveSession/
│ │ ├── AdaptivePractice.jsx
│ │ └── DifficultyIndicator.jsx
│ ├── hooks/
│ │ └── useSkillProfile.js
│ └── services/
│ └── adaptiveApi.js
Database Schema Addition
// New Collection: user_skill_profiles
{
userId: ObjectId,
topics: {
"DSA": { rating: 750, attempts: 120, correct: 89, avgTime: 45 },
"SystemDesign": { rating: 420, attempts: 50, correct: 28, avgTime: 120 },
},
streaks: { current: 7, longest: 21, lastPracticeDate: ISODate },
milestones: ["first_100", "week_streak", "dsa_500"],
revisionQueue: [{ topicId, nextReviewDate, easeFactor }]
}
✅ Acceptance Criteria
Checklist
Feature/Project Proposal
would like to propose a 3-layer intelligent system for PrepPilot: an AI-Powered Adaptive Learning Engine that dynamically adjusts question difficulty based on user performance, a Real-Time Performance Analytics Dashboard to visualize progress, and a Smart Recommendations Engine to generate personalized study plans using spaced repetition.
Problem Statement
Currently, PrepPilot provides interview preparation resources in a static, one-size-fits-all manner. There is no intelligent mechanism to assess a user's current skill level dynamically, adapt question difficulty based on real-time performance, or visualize long-term progress. Users practice questions randomly without a personalized learning path, leading to inefficient preparation, poor retention, and a lack of motivation.
Proposed Solution
The project could implement a comprehensive 3-layer solution:
Implement an Elo-rating / Item-Response-Theory (IRT) based algorithm that dynamically adjusts question difficulty based on answer correctness, time taken per question, and topic-wise historical accuracy.
Maintain a user_skill_profile schema tracking per-topic proficiency scores (0-1000 scale).
Create API endpoints: GET /api/adaptive/next-question, POST /api/adaptive/submit-answer, GET /api/adaptive/skill-profile.
2. Real-Time Analytics Dashboard (Frontend):
Build a comprehensive analytics page featuring a Skill Radar Chart, Progress Timeline, GitHub-style Streak Heatmap, Speed vs Accuracy Scatter Plot, and Gamified Milestone Tracker.
Implement WebSocket/SSE for live updates during active practice sessions.
Add PDF/CSV export functionality for analytics reports.
3. Smart Recommendations Engine:
Suggest weak-topic focused practice sets.
Recommend revision sessions based on the SM-2 spaced repetition algorithm (forgetting curve).
Dynamically generate weekly study plans.
Alternatives Considered
Another possible solution is using static difficulty tags (Easy/Medium/Hard) or simple percentage-based progress tracking. However, static tags do not adapt to an individual's learning curve, and simple percentages lack the depth of Elo/IRT ratings needed to accurately map a user's true skill trajectory and predict optimal learning steps.
Benefits
This feature would drastically improve the user experience by providing a highly personalized and adaptive learning path. Users will study more efficiently by focusing precisely on their weak areas, retain information better through algorithmic spaced repetition, and stay motivated via visual progress tracking, streaks, and gamified milestones. This transforms PrepPilot from a simple question bank into an intelligent AI tutor.
Priority
High
Additional Context
Frontend (New Files)
frontend/
├── src/
│ ├── pages/
│ │ └── Analytics/
│ │ ├── AnalyticsDashboard.jsx
│ │ ├── SkillRadar.jsx
│ │ ├── ProgressTimeline.jsx
│ │ ├── StreakHeatmap.jsx
│ │ └── SpeedAccuracyChart.jsx
│ ├── components/
│ │ └── AdaptiveSession/
│ │ ├── AdaptivePractice.jsx
│ │ └── DifficultyIndicator.jsx
│ ├── hooks/
│ │ └── useSkillProfile.js
│ └── services/
│ └── adaptiveApi.js
Database Schema Addition
// New Collection: user_skill_profiles
{
userId: ObjectId,
topics: {
"DSA": { rating: 750, attempts: 120, correct: 89, avgTime: 45 },
"SystemDesign": { rating: 420, attempts: 50, correct: 28, avgTime: 120 },
},
streaks: { current: 7, longest: 21, lastPracticeDate: ISODate },
milestones: ["first_100", "week_streak", "dsa_500"],
revisionQueue: [{ topicId, nextReviewDate, easeFactor }]
}
✅ Acceptance Criteria
Checklist