Transform your algorithm learning journey with AI-powered Socratic dialogue
🚀 Live Demo | 📖 Documentation | 💡 Features | 🤝 Contributing
- 🌟 Overview
- ✨ Key Features
- 🛠️ Technology Stack
- 📸 Screenshots
- 🚀 Quick Start
- 📖 Usage Guide
- 🏗️ Project Structure
- 🤝 Contributing
- 📈 Roadmap
- 📄 License
- 👥 Contributors
- 📞 Support
AlgoMentor is a revolutionary Socratic AI-driven educational platform that transforms how students learn algorithms and data structures. Powered by Google's advanced Gemini 2.5 Flash model, AlgoMentor acts as your personal AI mentor, guiding you through complex algorithmic concepts using the time-tested Socratic method of learning.
To democratize algorithm education by providing personalized, interactive, and engaging learning experiences that adapt to each learner's pace and understanding level.
- 🧠 Intelligent Learning: AI asks the right questions at the right time
- 📈 Adaptive Progress: Learns your strengths and adjusts accordingly
- 💬 Interactive Dialogue: No passive learning—active engagement only
- 🎓 Proven Methodology: Based on Socratic teaching principles
- 🌍 Accessible: Available 24/7, anywhere in the world
- Guided Discovery: AI asks probing questions to help you discover solutions
- Conceptual Understanding: Focus on 'why' and 'how' rather than memorization
- Real-time Adaptation: Difficulty adjusts based on your responses
- Critical Thinking: Develops problem-solving skills through guided inquiry
- 50+ Algorithms: From basic sorting to advanced graph algorithms
- Multiple Categories: Sorting, Searching, Dynamic Programming, Greedy, Graph Theory
- Difficulty Levels: Easy, Medium, Hard progression paths
- Time Complexity Analysis: Deep understanding of algorithmic efficiency
- Conversation History: Never lose your learning progress
- Visual Examples: Interactive demonstrations and explanations
- Progress Tracking: Monitor your learning journey
- Personalized Feedback: Immediate, actionable insights
- Secure Authentication: User accounts with encrypted data
- Learning Analytics: Track progress and identify improvement areas
- Privacy-First: Your learning data stays protected
- Cross-Device Sync: Continue learning from any device
- Responsive Design: Perfect experience on all devices
- Dark/Light Themes: Customizable appearance
- Accessibility: WCAG compliant for inclusive learning
- Intuitive Navigation: Clean, distraction-free interface
- Next.js 14+ - React framework with server-side rendering
- React 18 - Component-based UI library
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- Shadcn/UI - Modern component library
- Google Gemini 2.5 Flash - Advanced language model
- Next.js API Routes - Server-side API
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
Get AlgoMentor running locally in under 5 minutes!
# 1. Clone the repository
git clone https://github.com/jatinkaushik-jk/algo-mentor.git
cd algo-mentor
# 2. Install dependencies
npm install
# 3. Set up environment variables
cp .env.sample .env.local
# Edit .env.local with your API keys
# 4. Run the development server
npm run dev
# 5. Open http://localhost:3000
That's it! 🎉 AlgoMentor should now be running locally.
- Create an Account: Sign up to track your progress
- Pick an Algorithm: Browse our comprehensive algorithm library
- Start Learning: Engage with your AI mentor through questions
- Track Progress: Monitor your understanding and improvement
- Be Specific: Ask detailed questions about concepts you don't understand
- Think Aloud: Share your thought process with the AI
- Ask "Why": Don't just accept answers—understand the reasoning
- Request Examples: Ask for practical applications and variations
- Challenge Yourself: Request increasingly difficult problems
You: I want to learn about bubble sort
AI: Great choice! Before we dive in, what do you think sorting means in computer science?
You: Arranging elements in a specific order?
AI: Excellent! Now, if you had a deck of cards, how might you sort them manually?
...
- Algorithm Mastery: See which algorithms you've completed
- Time Spent: Monitor your learning time investment
- Difficulty Progression: Track your advancement through levels
- Conversation History: Review past learning sessions
- Strengths & Weaknesses: Identify areas for improvement
algo-mentor/
├── 📁 src/
│ ├── 📁 app/ # Next.js App Router
│ │ ├── 📁 (auth)/ # Authentication pages
│ │ ├── 📁 algorithms/ # Algorithm pages
│ │ ├── 📁 dashboard/ # User dashboard
│ │ ├── 📁 learn/ # Learning interface
│ │ └── 📁 api/ # API routes
│ │ ├── 📁 auth/ # Authentication endpoints
│ │ ├── 📁 algorithms/ # Algorithm data endpoints
│ │ └── 📁 chat/ # AI chat endpoints
│ ├── 📁 components/ # Reusable UI components
│ │ ├── 📁 ui/ # Shadcn/UI components
│ │ ├── 📁 auth/ # Authentication components
│ │ ├── 📁 learning/ # Learning interface components
│ │ └── 📁 dashboard/ # Dashboard components
│ ├── 📁 lib/ # Utility libraries
│ │ ├── 📄 mongodb.ts # Database connection
│ │ ├── 📄 gemini.ts # AI model integration
│ │ └── 📄 utils.ts # Helper functions
│ ├── 📁 models/ # Database schemas
│ │ ├── 📄 User.ts # User model
│ │ ├── 📄 Conversation.ts # Chat history model
│ │ └── 📄 Progress.ts # Learning progress model
│ ├── 📁 data/ # Static data
│ │ └── 📄 algorithms.ts # Algorithm definitions
│ └── 📁 types/ # TypeScript definitions
├── 📁 public/ # Static assets
├── 📁 docs/ # Documentation
├── 📄 package.json # Dependencies
├── 📄 tsconfig.json # TypeScript config
├── 📄 tailwind.config.js # Tailwind CSS config
├── 📄 next.config.js # Next.js config
└── 📄 README.md # This file
We welcome contributions from the community! Here's how you can help:
- Fork the Repository
- Create a Feature Branch:
git checkout -b feature/amazing-feature
- Commit Changes:
git commit -m 'Add amazing feature'
- Push to Branch:
git push origin feature/amazing-feature
- Open a Pull Request
- Use TypeScript for all new code
- Follow ESLint and Prettier configurations
- Write meaningful commit messages
- Ensure your PR description clearly describes the problem and solution
- Include the relevant issue number if applicable
- Make sure there is no typescript and Eslint errors
- Update documentation if needed
- 🐛 Bug Fixes: Help us squash bugs
- ✨ New Features: Add exciting new functionality
- 📚 Documentation: Improve our docs
- 🎨 UI/UX: Enhance user experience
- 🔧 Performance: Optimize existing code
When reporting issues, please include:
- Clear Description: What happened vs. what you expected
- Steps to Reproduce: How can we recreate the issue?
- Environment: OS, browser, Node.js version
- Screenshots: If applicable
- Socratic Learning: AI chat interaction with socratic learning methodology
- Web App: Next JS based web app
- Progress Analytics: Advanced learning analytics dashboard
- Community Support: Interact and Collaborate with innovative minds
- Gamification: Points, badges, and leaderboards
- Advanced Algorithms: Graph theory, dynamic programming
- Multi-language Support: Support for multiple programming languages
- AI Tutor Customization: Personalized teaching styles
- Integration Platform: Connect with coding platforms
- Enterprise Features: Classroom management for educators
- Advanced Analytics: ML-powered learning insights
Vote on upcoming features in our GitHub Discussions!
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2024 Jatin Kaushik
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
- Google AI Team for the incredible Gemini model
- Next.js Team for the amazing framework
- Open Source Community for inspiration and support
- 📧 Email: connect.jatinkaushik@gmail.com
- 🐛 Bug Reports: GitHub Issues
- 💡 Feature Requests: GitHub Discussions
Made with ❤️ by Jatin Kaushik
Empowering the next generation of algorithm masters through AI-driven education