Your AI-Powered Algorithm Learning Companion
AlgoPlaces is an intelligent web application designed to help students and developers master algorithmic problem-solving through personalized strategies, practice problems, and interview preparation. Built with modern web technologies and powered by OpenAI's GPT models, it provides tailored learning experiences for coding interviews and algorithmic challenges.
- AI-Powered Strategy Generation: Get personalized, step-by-step strategies for any algorithmic problem
- Practice Problem Recommendations: Receive curated practice problems based on your queries
- Interview Probability Assessment: Understand the likelihood of problems appearing in technical interviews
- Progress Tracking: Monitor your learning journey with persistent history
- Google OAuth Integration: Secure authentication with Google accounts
- Responsive Design: Beautiful, modern UI built with Tailwind CSS
- Real-time Feedback: Instant AI-generated responses and recommendations
- React 18 - Modern React with hooks
- React Router - Client-side routing
- Tailwind CSS - Utility-first CSS framework
- Webpack - Module bundler and dev server
- Google OAuth - Authentication
- Node.js - JavaScript runtime
- Express.js - Web application framework
- MongoDB - NoSQL database with Mongoose ODM
- OpenAI API - AI-powered content generation
- JWT - JSON Web Token authentication
- CORS - Cross-origin resource sharing
- Webpack Dev Server - Development server with hot reload
- Nodemon - Auto-restart server during development
- PostCSS - CSS processing
- Babel - JavaScript transpilation
Before running this application, make sure you have the following installed:
- Node.js (v14 or higher)
- npm (v6 or higher)
- MongoDB account (or local MongoDB installation)
- OpenAI API Key
- Google OAuth Credentials
git clone https://github.com/JoshuaHirakawa/AlgoPlaces.git
cd AlgoPlacesnpm installCreate a .env file in the root directory and add the following variables:
OPENAI_API_KEY=your_openai_api_key_here
MONGODB_URI=your_mongodb_connection_string_here
JWT_SECRET=your_jwt_secret_hereMake sure your MongoDB database is running and accessible. The application will automatically connect using the provided MONGODB_URI.
Run both frontend and backend servers simultaneously with a single command:
npm run dev:coloredThis will start:
- Backend Server:
http://localhost:3000(Express API) - Frontend Server:
http://localhost:8080(React App)
Option 1 - Simple Concurrent:
npm run dev:fullOption 2 - Separate Terminals:
Terminal 1 - Backend Server:
npm run serverTerminal 2 - Frontend Server:
npm run clientnpm run build- Authentication: Visit
http://localhost:8080and sign in with your Google account - Submit a Problem: Enter any algorithmic problem or coding challenge
- Get AI Strategy: Receive a personalized strategy with step-by-step guidance
- Practice Problems: Get recommended practice problems based on your query
- Track Progress: View your history and track your learning journey
- Interview Prep: See interview probability ratings for different problem types
AlgoPlaces/
βββ src/ # Frontend source code
β βββ components/ # React components
β β βββ App.js # Main app component
β β βββ Dashboard.js # Main dashboard
β β βββ LoginPage.js # Authentication page
β β βββ Strategy.js # Strategy display component
β β βββ PracticeProblem.js # Practice problems component
β β βββ History.js # User history component
β β βββ InputProblem.js # Problem input component
β βββ assets/ # Static assets
β β βββ images/ # Image files
β βββ styles/ # CSS files
β βββ index.js # Entry point
βββ server/ # Backend source code
β βββ controllers/ # Route controllers
β β βββ openaiController.js # OpenAI API integration
β β βββ historyController.js # User history management
β β βββ parseUserQuery.js # Query processing
β βββ models/ # Database models
β β βββ userProgressModel.js # User progress schema
β βββ routes/ # API routes
β β βββ apiRoutes.js # Main API routes
β βββ server.js # Express server
βββ webpack.config.js # Webpack configuration
βββ tailwind.config.js # Tailwind CSS configuration
βββ package.json # Project dependencies
βββ README.md # Project documentation
POST /api/strategy- Generate AI strategy for a given problemGET /api/history- Retrieve user's problem-solving historyPOST /api/history- Save new problem-solving sessionPUT /api/history- Update existing history entry
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Joshua Hirakawa - Project Lead & Full-Stack Developer
- Aditi Srivastava - Full-Stack Developer
- Amrita Bahadur - Full-Stack Developer
- Winston Ludlam - Full-Stack Developer
- OpenAI for providing the GPT API
- Google for OAuth integration
- MongoDB for database services
- The React and Node.js communities for excellent documentation
If you encounter any issues or have questions, please:
- Check the existing issues on GitHub
- Create a new issue with detailed information
- Contact the development team
Happy Coding! π

