A comprehensive Data Structures and Algorithms learning platform featuring interactive visualizations, progress tracking, and a curated problem set. Built with Node.js, Express, MongoDB, and React.
- Interactive Problem Solving: Browse and solve DSA problems across multiple categories
- Visual Learning: Real-time algorithm visualizations for arrays, trees, graphs, and sorting
- Progress Tracking: Monitor your learning journey with detailed statistics
- Difficulty Levels: Problems categorized as Easy, Medium, and Hard
- Personal Notes: Add notes to each problem for future reference
- User Authentication: Secure JWT-based authentication system
Backend:
- Node.js & Express
- MongoDB with Mongoose
- JWT Authentication
- bcryptjs for password hashing
Frontend:
- React 18
- React Router for navigation
- Axios for API calls
- Canvas API for visualizations
- Node.js (v14 or higher)
- MongoDB (local or Atlas)
- npm or yarn
- Clone the repository
git clone https://github.com/anushreejha/CrackTheCode
cd CrackTheCode
- Setup Backend
cd server
npm install
Create .env file in server directory:
PORT=5000
MONGO_URI=mongodb://localhost:27017/crackthecode
JWT_SECRET=<your-api-key>
- Setup Frontend
cd client
npm install
Create .env file in client directory:
REACT_APP_API_URL=http://localhost:5000/api
- Start MongoDB (if running locally)
mongod
- Start Backend Server
cd server
npm start
Server runs on http://localhost:5000
- Start Frontend
cd client
npm start
Client runs on http://localhost:3000
CrackTheCode/
├── server/ # Backend application
│ ├── models/ # Mongoose schemas
│ ├── routes/ # API routes
│ ├── middleware/ # Custom middleware
│ ├── config/ # Configuration files
│ └── server.js # Entry point
├── client/ # Frontend application
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── utils/ # Utility functions
│ │ └── App.js # Main app component
│ └── public/ # Static files
└── README.md
POST /api/auth/register- Register new userPOST /api/auth/login- Login user
GET /api/problems- Get all problems (with filters)GET /api/problems/:id- Get single problem
GET /api/progress- Get user progressPOST /api/progress- Update problem progress
- Register/Login: Create an account or login
- Browse Problems: View problems filtered by difficulty and category
- Solve Problems: Click on a problem to view details, hints, and solution
- Visualize: Use interactive visualizations to understand algorithms
- Track Progress: Mark problems as attempted or solved
- Add Notes: Keep personal notes for each problem
- Code editor with syntax highlighting
- Test case execution
- Discussion forums
- Leaderboards
- More visualization types
- Mobile app