A comprehensive learning management system that provides personalized educational roadmaps and AI-powered assessments to help users achieve their learning goals. Built with modern technologies and featuring a polished, responsive UI.
- Personalized Roadmaps: Custom learning paths based on user goals and skill levels
- Progress Tracking: Visual progress indicators and milestone tracking with interactive charts
- Goal Setting: Set and monitor learning objectives with progress visualization
- Dashboard: Comprehensive overview with statistics, recent activity, and quick actions
- User Profile: Detailed profile management with learning history
- Dynamic Quiz Generation: Create quizzes on any topic using Google's Gemini AI
- Interactive Quiz Interface: Modern, user-friendly quiz taking experience with navigation
- Detailed Results: Comprehensive feedback with correct/incorrect answer explanations
- Performance Analytics: Score tracking, performance insights, and visual score indicators
- Retake Options: Ability to retake quizzes or try different topics
- Question Navigation: Easy navigation between questions with progress indicators
- User Registration & Login: Secure user authentication system with modern UI
- Password Reset: Email-based password recovery with styled forms
- Protected Routes: Secure access to learning content with route guards
- JWT Authentication: Token-based authentication for API security
- Form Validation: Client-side and server-side validation
- Tailwind CSS: Modern utility-first CSS framework for consistent styling
- Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- Dark Theme: Beautiful dark gradient theme with consistent color scheme
- Interactive Components: Engaging buttons, cards, and form elements
- Loading States: Smooth loading animations and disabled states
- Accessibility: Keyboard navigation, focus states, and screen reader support
- Unified Design System: Consistent button styles, form elements, and layouts
- React 18: Modern React with hooks and functional components
- React Router: Client-side routing and navigation
- Tailwind CSS: Utility-first CSS framework for rapid UI development
- Axios: HTTP client for API communication
- Vite: Fast build tool and development server
- PostCSS: CSS processing for Tailwind compilation
- Node.js: JavaScript runtime environment
- Express.js: Web application framework
- MongoDB: NoSQL database for data storage
- Mongoose: MongoDB object modeling
- JWT: JSON Web Token for authentication
- Google Gemini AI: AI-powered quiz generation
- Nodemailer: Email service for password reset
personalized-learning-path/
├── Backend/
│ ├── Controllers/ # API route handlers
│ │ ├── Auth.js
│ │ ├── roadmapController.js
│ │ ├── userRoadmapcontrollers.js
│ │ └── passwordResetController.js
│ ├── Middleware/ # Authentication middleware
│ │ └── middlewareAuth.js
│ ├── Models/ # Database models
│ │ ├── Users.js
│ │ ├── Raodmap.js
│ │ ├── userRoadmap.js
│ │ ├── passwordReset.js
│ │ └── ProgressSchema.js
│ ├── Routes/ # API routes
│ │ ├── auth.js
│ │ ├── userAuth.js
│ │ ├── roadmapRoutes.js
│ │ ├── assessmentRoute.js
│ │ ├── userRoadmapRoutes.js
│ │ ├── progressRoutes.js
│ │ ├── dashboardRoute.js
│ │ ├── profile.js
│ │ └── resetPassword.js
│ ├── Service/ # External services
│ │ └── emailService.js
│ ├── scripts/ # Database population scripts
│ │ └── populateRoadmaps.js
│ └── server.js # Main server file
├── Frontend/
│ ├── src/
│ │ ├── Components/ # React components
│ │ │ ├── Auth/ # Authentication components
│ │ │ │ ├── LoginForm.jsx
│ │ │ │ ├── RegisterForm.jsx
│ │ │ │ ├── ForgotPassword.jsx
│ │ │ │ └── ResetPassword.jsx
│ │ │ ├── Dashboard/ # Dashboard components
│ │ │ │ ├── Dashboard.jsx
│ │ │ │ ├── profile.jsx
│ │ │ │ ├── LearningPathCurve.jsx
│ │ │ │ └── ProgressBar.jsx
│ │ │ ├── Roadmap/ # Roadmap components
│ │ │ │ ├── RoadmapSelector.jsx
│ │ │ │ └── VisualRoadmap.jsx
│ │ │ └── Assessement/ # Assessment components
│ │ │ ├── Assessement.jsx
│ │ │ ├── QuizInterface.jsx
│ │ │ └── Results.jsx
│ │ ├── Api/ # API service layer
│ │ │ ├── authApi.jsx
│ │ │ └── assessmentApi.jsx
│ │ ├── Context/ # React context providers
│ │ │ └── authContext.jsx
│ │ ├── util/ # Utility components
│ │ │ └── PrivateRoute.jsx
│ │ ├── index.css # Global styles with Tailwind
│ │ └── main.jsx # Application entry point
│ ├── tailwind.config.js # Tailwind CSS configuration
│ ├── package.json # Frontend dependencies
│ └── public/ # Static assets
└── README.md
- Node.js (v16 or higher)
- MongoDB (v4.4 or higher)
- npm or yarn package manager
-
Navigate to backend directory
cd Backend -
Install dependencies
npm install
-
Environment Configuration Create a
.envfile in the Backend directory:MONGODB_URI=mongodb://localhost:27017/learning-path JWT_SECRET=your_jwt_secret_key GEMINI_API_KEY=your_google_gemini_api_key CLIENT_ORIGIN=http://localhost:5173 EMAIL_USER=your_email@gmail.com EMAIL_PASS=your_app_password PORT=3002
-
Start the server
npm start
-
Navigate to frontend directory
cd Frontend -
Install dependencies
npm install
-
Environment Configuration Create a
.envfile in the Frontend directory:VITE_API_BASE_URL=http://localhost:3002
-
Start the development server
npm run dev
- Register: Create a new account with the modern registration form
- Login: Access your account with the styled login interface
- Dashboard: View your learning progress, statistics, and quick actions
- Profile: Manage your profile and view learning history
- Roadmaps: Browse and select learning paths with visual cards
- Assessment: Take AI-generated quizzes on any topic
- Click "Take Assessment" from the dashboard
- Enter any topic you want to be tested on (e.g., "React", "Machine Learning", "History")
- Wait for AI to generate questions (loading animation included)
- Navigate through questions using the progress bar and question indicators
- Select answers with the modern radio button interface
- Submit when all questions are answered
- Review detailed results with color-coded feedback
- Retake the quiz or try a different topic
- Navigate to "Browse Roadmaps" from the dashboard
- Use category filters to find relevant roadmaps
- Select a roadmap that matches your learning goals
- View roadmap details including difficulty, duration, and steps
- Start learning and track your progress
- Complete milestones and advance to the next level
- Dark Theme: Beautiful gradient backgrounds with consistent dark theme
- Responsive Design: Works perfectly on desktop, tablet, and mobile
- Interactive Elements: Hover effects, loading states, and smooth transitions
- Navigation: Easy navigation between different sections
- Accessibility: Keyboard navigation and focus states for better accessibility
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/auth/verify- Token verificationPOST /api/password-reset/request- Request password resetPOST /api/password-reset/reset- Reset password
GET /api/roadmaps- Get all roadmapsGET /api/roadmaps/:id- Get specific roadmapPOST /api/user-roadmaps- Assign roadmap to userGET /api/user-roadmaps- Get user's roadmaps
POST /api/assessment- Generate quiz for topicPOST /api/assessment/submit- Submit quiz answers
GET /api/user/stats- Get user statisticsGET /api/user/recent-activity- Get recent activityGET /api/user/learning-path- Get learning path
The assessment system uses Google's Gemini AI to generate questions. Simply enter any topic in the assessment interface, and the AI will create relevant questions.
The application uses Tailwind CSS for styling. To customize the appearance:
- Global Styles: Modify
Frontend/src/index.cssfor global styles and CSS variables - Tailwind Config: Update
Frontend/tailwind.config.jsfor custom colors, fonts, and theme - Component Styles: Use Tailwind utility classes directly in components
- Custom Components: Add custom CSS classes in
index.cssfor complex styling needs
The application follows a unified design system with:
- Color Palette: Dark theme with slate/blue accent colors
- Typography: Consistent font sizes and weights
- Button System: Unified button classes (
.btn,.btn-primary,.btn-secondary, etc.) - Form Elements: Consistent form inputs and labels
- Cards: Standardized card components with hover effects
- Use the populate script:
Backend/scripts/populateRoadmaps.js - Add new roadmap data to the database
- Update the roadmap display components
- Set up MongoDB Atlas or local MongoDB instance
- Configure environment variables for production
- Deploy to platforms like Heroku, Railway, or AWS
- Ensure CORS is properly configured for your frontend domain
- Build the production version:
npm run build - Deploy to platforms like Vercel, Netlify, or AWS S3
- Update API base URL for production environment
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature - Commit your changes:
git commit -am 'Add new feature' - Push to the branch:
git push origin feature/new-feature - Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the GitHub repository
- Check the documentation for common solutions
- Review the API endpoints for integration help
- Social learning features (study groups, forums)
- Advanced analytics and reporting
- Integration with external learning platforms
- Gamification elements (badges, leaderboards, achievements)
- Multi-language support
- Offline mode for assessments
- Advanced quiz types (fill-in-the-blank, matching)
- Study reminders and notifications
- Learning streak tracking
- Export progress reports
- Google Gemini AI for quiz generation
- React community for excellent documentation
- MongoDB for database services
- All contributors and testers
Happy Learning! 🎓