A comprehensive full-stack web application designed to help students prepare for their target company interviews through personalized, data-driven learning paths.
- User registration with name, email, password
- Login authentication with JWT tokens
- Profile management
- Target company selection
- Study hours configuration
- Pre-configured company profiles (Amazon, Google, Microsoft, TCS, Infosys, etc.)
- Topic weightage for each company
- Difficulty levels
- Frequently asked topics
- Company-specific focus areas
- Adaptive diagnostic quiz (25 questions across 5 topics)
- Topics: DSA, DBMS, OS, CN, Aptitude
- Multiple difficulty levels
- Topic-wise scoring
- Detailed performance analysis
- Decision Tree classifier for skill assessment
- Random Forest ensemble model
- Identifies skill level (Beginner/Intermediate/Advanced)
- Detects weak and strong topics
- Confidence scoring
- Compares user skills vs company requirements
- Priority-ranked topic suggestions
- Customized improvement recommendations
- Company-aligned preparation focus
- Topological Sorting DAG implementation
- Prerequisite-based topic ordering
- Priority-ranked topics (High/Medium/Low)
- Estimated completion time per topic
- Adaptive difficulty based on skill level
- Cosine Similarity content-based filtering
- Multi-source resources (Videos, Articles, Problems)
- Company relevance tagging
- Difficulty-filtered recommendations
- Curated learning materials database
- Daily and weekly schedules
- Personalized task allocation
- Adapts to user's study hours/day
- Progress tracking per day
- Milestone-based learning
- Topic-wise progress visualization
- Readiness percentage calculation
- Improvement trends analysis
- Quiz history tracking
- Performance metrics
- Mini-tests after each topic
- Dynamic skill level updates
- Learning path re-optimization
- Progressive difficulty increase
- Continuous assessment loop
- Full-length company-level mock test
- 50 curated questions (company-specific)
- Real interview simulation
- Performance analysis
- Readiness feedback (NOT eligibility prediction)
- Weak areas identification
- React.js 18.2 - UI library
- React Router - Navigation
- CSS3 - Styling with gradient themes
- Axios - API calls
- Node.js - Runtime
- Express.js - Web framework
- MongoDB - Database
- JWT - Authentication
- Mongoose - ODM
- Python Flask - ML API server
- scikit-learn - ML algorithms
- Decision Tree Classifier
- Random Forest Classifier
- NumPy/Pandas - Data processing
LearnPath/
├── frontend/ # React application
│ ├── src/
│ │ ├── pages/ # Page components
│ │ │ ├── Login.js
│ │ │ ├── Register.js
│ │ │ ├── Dashboard.js
│ │ │ ├── DiagnosticTest.js
│ │ │ ├── LearningPath.js
│ │ │ ├── Resources.js
│ │ │ ├── Progress.js
│ │ │ ├── StudyPlan.js
│ │ │ └── MockTest.js
│ │ ├── components/ # Reusable components
│ │ ├── utils/ # Utilities
│ │ │ ├── api.js # API client
│ │ │ └── auth.js # Auth helpers
│ │ ├── styles/ # CSS files
│ │ ├── App.js
│ │ └── index.js
│ └── package.json
│
├── backend/ # Node.js Express server
│ ├── src/
│ │ ├── models/ # MongoDB schemas
│ │ │ ├── User.js
│ │ │ ├── Company.js
│ │ │ ├── Question.js
│ │ │ ├── Quiz.js
│ │ │ ├── SkillAnalysis.js
│ │ │ ├── LearningPath.js
│ │ │ ├── Resource.js
│ │ │ ├── Progress.js
│ │ │ └── StudyPlan.js
│ │ ├── controllers/ # Route handlers
│ │ │ ├── authController.js
│ │ │ ├── companyController.js
│ │ │ ├── quizController.js
│ │ │ ├── analysisController.js
│ │ │ ├── learningPathController.js
│ │ │ ├── recommendationController.js
│ │ │ ├── progressController.js
│ │ │ ├── studyPlanController.js
│ │ │ └── mockTestController.js
│ │ ├── routes/ # API routes
│ │ ├── middleware/ # Authentication
│ │ ├── utils/ # Helper functions
│ │ └── services/ # Business logic
│ ├── scripts/
│ │ └── seedData.js # Database seeding
│ ├── server.js # Main server file
│ ├── package.json
│ └── .env.example
│
├── ml-service/ # Python Flask ML API
│ ├── src/
│ │ ├── skill_analyzer.py # ML models
│ │ ├── learning_path_generator.py # Topological sort
│ │ └── resource_recommender.py # Cosine similarity
│ ├── models/ # Trained models storage
│ ├── app.py # Flask app
│ ├── requirements.txt
│ └── .env.example
│
└── README.md
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/auth/profile- Get user profilePUT /api/auth/profile- Update profile
GET /api/companies/all- Get all companiesGET /api/companies/:name- Get company detailsGET /api/companies/requirements- Get company requirements
GET /api/quiz/diagnostic- Get diagnostic testPOST /api/quiz/submit- Submit quiz answersGET /api/quiz/results/:quizId- Get resultsGET /api/quiz/history- Get quiz history
POST /api/analysis/skills- Perform ML analysisGET /api/analysis/latest- Get latest analysisGET /api/analysis/progression- Get skill progression
POST /api/learning-path/generate- Generate pathGET /api/learning-path- Get current pathPUT /api/learning-path/update-topic- Update topic status
GET /api/recommendations- Get recommendationsGET /api/recommendations/topic- Get by topicGET /api/recommendations/all- All resources
GET /api/progress- Get progressPUT /api/progress/update-topic- Update progressGET /api/progress/readiness- Calculate readiness
POST /api/study-plan/generate- Generate planGET /api/study-plan- Get planPUT /api/study-plan/update-task- Update task
GET /api/mock-test- Get mock testPOST /api/mock-test/submit- Submit testGET /api/mock-test/feedback/:mockTestId- Get feedback
- Node.js (v14+)
- Python (v3.8+)
- MongoDB (local or cloud)
cd backend
npm install
cp .env.example .env
# Edit .env with your MongoDB URI
npm run seed # Seed initial data
npm run dev # Start backendcd ml-service
python -m venv venv
# Windows: venv\Scripts\activate
# Mac/Linux: source venv/bin/activate
pip install -r requirements.txt
python app.pycd frontend
npm install
npm start{
name: String,
email: String (unique),
password: String (hashed),
targetCompany: String,
studyHoursPerDay: Number,
createdAt: Date,
updatedAt: Date
}
{
name: String,
topicWeightage: {
DSA: Number,
DBMS: Number,
OS: Number,
CN: Number,
Aptitude: Number
},
difficultyLevel: String,
frequentlyAskedTopics: [String],
focusAreas: [String]
}
{
userId: ObjectId,
quizType: String (Diagnostic/Topic-wise/Mock),
answers: [{
questionId: ObjectId,
selectedAnswer: Number,
isCorrect: Boolean
}],
topicScores: {DSA, DBMS, OS, CN, Aptitude},
overallScore: Number,
percentageScore: Number,
completedAt: Date
}
-
Decision Tree Classifier
- Max depth: 5
- Input: Topic-wise scores
- Output: Skill level
-
Random Forest Classifier
- Estimators: 10
- Ensemble voting for final prediction
- Topological Sorting (Kahn's Algorithm)
- DAG representation of prerequisites
- Topics sorted based on:
- Prerequisites satisfaction
- Weak topic priority
- Company importance weights
- Estimated completion time
- Cosine Similarity
- User profile = topic preferences
- Resource profile = topic + difficulty + type
- Company relevance boost: +0.2
- JWT-based token authentication
- Bcrypt password hashing
- Protected routes with middleware
- Diagnostic test with adaptive difficulty
- ML-based classification
- Weak/strong topic identification
- Topological DAG for prerequisites
- Company-specific priority ranking
- Estimated study duration
- Content-based similarity filtering
- Company-relevant tagging
- Multi-source resource database
- Topic-wise completion tracking
- Readiness percentage calculation
- Improvement trend analysis
- Dynamic difficulty adjustment
- Topic re-prioritization
- Continuous assessment
- Registration → Select target company and study hours
- Dashboard → View stats and access features
- Diagnostic Test → Assess current skills
- Skill Analysis → Get ML-powered insights
- Learning Path → View personalized roadmap
- Resource Selection → Get recommendations
- Study Plan → Follow daily schedule
- Progress Tracking → Monitor improvement
- Mock Test → Final assessment and feedback
- Represents topics as nodes in a DAG
- Edges represent prerequisites
- Kahn's algorithm for ordering
- Output: Learning sequence
- User profile: binary vector of selected topics
- Resource profile: [topic_score, difficulty, type]
- Similarity = dot product / (||u|| * ||r||)
- Higher similarity = better recommendation
- Decision Tree prediction
- Random Forest prediction
- Majority voting for final skill level
- Confidence from RF probability
- JWT tokens for authentication
- Bcrypt password hashing
- CORS enabled for frontend
- Input validation on all routes
- Protected routes with auth middleware
- Collaborative Filtering - User-based recommendations
- Interview Video Analytics - Video solution tracking
- Competitive Analysis - Compare with peer performance
- Peer Learning - Discuss and share doubts
- Real-time Notifications - Reminders and updates
- Mobile App - React Native version
- Advanced Analytics - Detailed performance insights
- Interview Prep - Mock interviews with AI feedback
- Page Load Time < 2s
- API Response Time < 500ms
- ML Prediction Time < 1s
- Database Query Optimization with indexes
# Backend tests
cd backend
npm test
# Frontend tests
cd frontend
npm test
# ML model tests
cd ml-service
pytestnpm run build
# Deploy build/ foldergit push heroku maingit push render main✅ NO eligibility prediction - System provides preparation guidance only ✅ Company-specific focus - Tailored to each company's requirements ✅ Adaptive learning - Difficulty adjusts based on performance ✅ Evidence-based approach - Uses ML and DAGs for insights ✅ Comprehensive tracking - Monitor every aspect of preparation
MIT License
For issues and feature requests, please create an issue in the repository.
LearnPath: Your Personalized Path to Success 🚀