|
1 | | -### CODE QUEST |
| 1 | +# CodeQuest |
2 | 2 |
|
3 | | -- A coding platform |
| 3 | +**A modern coding platform for competitive programming and skill development** |
| 4 | + |
| 5 | +CodeQuest is a comprehensive coding platform that provides daily challenges, leaderboards, and problem sets from multiple competitive programming platforms. Built for students and developers who want to improve their algorithmic thinking and coding skills. |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | +## Features |
| 10 | + |
| 11 | +- **Daily Challenges** - Fresh coding problems every day with varying difficulty levels |
| 12 | +- **Leaderboard** - Track your progress and compete with other coders |
| 13 | +- **Problem Sets** - Browse problems by categories (Arrays, Dynamic Programming, etc.) |
| 14 | +- **Multi-Platform Integration** - Problems from LeetCode, GeeksforGeeks, CodeChef, and Codeforces |
| 15 | +- **User Profiles** - Personal dashboards with solve statistics and streaks |
| 16 | +- **Progress Tracking** - Monitor your coding journey with detailed analytics |
| 17 | +- **Responsive Design** - Seamless experience across desktop and mobile devices |
| 18 | + |
| 19 | +## Technology Stack |
| 20 | + |
| 21 | +### Frontend |
| 22 | +- **Framework**: React 19 with TypeScript |
| 23 | +- **Build Tool**: Vite |
| 24 | +- **Styling**: Tailwind CSS + shadcn/ui components |
| 25 | +- **State Management**: React Context API |
| 26 | +- **Routing**: React Router v6 |
| 27 | +- **HTTP Client**: Axios |
| 28 | +- **Animations**: Framer Motion |
| 29 | + |
| 30 | +### Backend |
| 31 | +- **Runtime**: Node.js |
| 32 | +- **Framework**: Express.js |
| 33 | +- **Database**: MongoDB with Mongoose |
| 34 | +- **Authentication**: JWT + Passport.js |
| 35 | +- **File Upload**: Cloudinary |
| 36 | +- **Email Service**: Custom email utilities |
| 37 | +- **Search**: TypeSense integration |
| 38 | + |
| 39 | +### DevOps & Deployment |
| 40 | +- **Frontend Hosting**: Cloudflare Pages |
| 41 | +- **Backend Hosting**: AWS Lambda |
| 42 | +- **CI/CD**: GitHub Actions |
| 43 | + |
| 44 | +## Getting Started |
4 | 45 |
|
5 | 46 | ### Prerequisites |
6 | | -- Install [Docker](https://www.docker.com/) |
| 47 | +- Node.js (v18 or higher) |
| 48 | +- MongoDB |
| 49 | +- Git |
| 50 | + |
| 51 | +### Local Development Setup |
| 52 | + |
| 53 | +1. **Clone the repository** |
| 54 | + ```bash |
| 55 | + git clone https://github.com/codevoid048/codequest.git |
| 56 | + cd codequest |
| 57 | + ``` |
| 58 | + |
| 59 | +2. **Setup Backend** |
| 60 | + ```bash |
| 61 | + cd server |
| 62 | + npm install |
| 63 | + |
| 64 | + # Create .env file with your configuration |
| 65 | + cp .env.example .env |
| 66 | + # Edit .env with your MongoDB URL, JWT secret, etc. |
| 67 | + |
| 68 | + # Start the server |
| 69 | + npm run dev |
| 70 | + ``` |
| 71 | + |
| 72 | +3. **Setup Frontend** |
| 73 | + ```bash |
| 74 | + cd client-test |
| 75 | + npm install |
| 76 | + |
| 77 | + # Create .env file |
| 78 | + echo "VITE_API_BASE_URL=http://localhost:5000" > .env |
| 79 | + |
| 80 | + # Start the development server |
| 81 | + npm run dev |
| 82 | + ``` |
| 83 | + |
| 84 | +4. **Access the application** |
| 85 | + - Frontend: `http://localhost:5173` |
| 86 | + - Backend: `http://localhost:5000` |
| 87 | + |
| 88 | +### Environment Variables |
| 89 | + |
| 90 | +**Backend (.env)** |
| 91 | +```env |
| 92 | +MONGODB_URI=your_mongodb_connection_string |
| 93 | +JWT_SECRET=your_jwt_secret |
| 94 | +CLOUDINARY_CLOUD_NAME=your_cloudinary_name |
| 95 | +CLOUDINARY_API_KEY=your_cloudinary_key |
| 96 | +CLOUDINARY_API_SECRET=your_cloudinary_secret |
| 97 | +``` |
| 98 | + |
| 99 | +**Frontend (.env)** |
| 100 | +```env |
| 101 | +VITE_API_BASE_URL=http://localhost:5000 |
| 102 | +``` |
| 103 | + |
| 104 | +## Project Structure |
| 105 | + |
| 106 | +``` |
| 107 | +codequest/ |
| 108 | +├── client-test/ # Frontend React application |
| 109 | +│ ├── src/ |
| 110 | +│ │ ├── components/ # Reusable UI components |
| 111 | +│ │ │ ├── Home/ # Homepage components |
| 112 | +│ │ │ ├── Challenges/ # Challenge-related components |
| 113 | +│ │ │ ├── Leaderboard/ # Leaderboard components |
| 114 | +│ │ │ ├── ProblemSet/ # Problem browsing components |
| 115 | +│ │ │ └── ui/ # shadcn/ui components |
| 116 | +│ │ ├── context/ # React Context providers |
| 117 | +│ │ ├── lib/ # Utility functions and configurations |
| 118 | +│ │ └── styles/ # Global styles |
| 119 | +│ ├── public/ # Static assets |
| 120 | +│ └── package.json |
| 121 | +├── server/ # Backend Node.js application |
| 122 | +│ ├── controllers/ # Route controllers |
| 123 | +│ ├── models/ # MongoDB models |
| 124 | +│ ├── routes/ # API routes |
| 125 | +│ ├── middleware/ # Custom middleware |
| 126 | +│ ├── utils/ # Utility functions |
| 127 | +│ └── config/ # Configuration files |
| 128 | +├── .github/ |
| 129 | +│ └── workflows/ # GitHub Actions CI/CD |
| 130 | +└── README.md |
| 131 | +``` |
| 132 | + |
| 133 | +## Contributing |
| 134 | + |
| 135 | +We welcome contributions from the community! Here's how you can help: |
| 136 | + |
| 137 | +### Getting Started |
| 138 | +1. Fork the repository |
| 139 | +2. Create a feature branch (`git checkout -b feature/amazing-feature`) |
| 140 | +3. Make your changes |
| 141 | +4. Commit your changes (`git commit -m 'Add some amazing feature'`) |
| 142 | +5. Push to the branch (`git push origin feature/amazing-feature`) |
| 143 | +6. Open a Pull Request |
| 144 | + |
| 145 | +### Code Style Guidelines |
| 146 | +- Use TypeScript for type safety |
| 147 | +- Follow ESLint configuration |
| 148 | +- Use Prettier for code formatting |
| 149 | +- Write meaningful commit messages |
| 150 | +- Add comments for complex logic |
| 151 | + |
| 152 | +### Areas for Contribution |
| 153 | +- Bug fixes and performance improvements |
| 154 | +- New features and enhancements |
| 155 | +- Documentation improvements |
| 156 | +- UI/UX improvements |
| 157 | +- Test coverage expansion |
| 158 | + |
| 159 | +### Development Workflow |
| 160 | +1. **Issues**: Check existing issues or create a new one |
| 161 | +2. **Discussion**: Discuss your approach in the issue |
| 162 | +3. **Development**: Work on your feature/fix |
| 163 | +4. **Testing**: Ensure your changes work correctly |
| 164 | +5. **Pull Request**: Submit with clear description |
| 165 | + |
| 166 | +## Deployment |
| 167 | + |
| 168 | +The project uses automated CI/CD pipelines: |
| 169 | + |
| 170 | +### Frontend Deployment |
| 171 | +- **Platform**: Cloudflare Pages |
| 172 | +- **Trigger**: Push to `main` branch |
| 173 | +- **Build Command**: `npm run build` |
| 174 | +- **Output Directory**: `dist` |
| 175 | + |
| 176 | +### Backend Deployment |
| 177 | +- **Platform**: Custom server deployment |
| 178 | +- **Trigger**: Push to `main` branch |
| 179 | +- **Environment**: Production environment variables |
| 180 | + |
| 181 | +### CI/CD Pipeline |
| 182 | +- Automatic testing and linting |
| 183 | +- Build verification |
| 184 | +- Deployment to production |
| 185 | +- Environment-specific configurations |
| 186 | + |
| 187 | +## License |
| 188 | + |
| 189 | +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |
| 190 | + |
| 191 | +## Acknowledgments |
| 192 | + |
| 193 | +- **SRKR Coding Club** - For the initiative and support |
| 194 | +- **Open Source Community** - For the amazing tools and libraries |
| 195 | +- **Contributors** - For making this project better |
7 | 196 |
|
| 197 | +## Support |
8 | 198 |
|
9 | | -# Build and Start both services backend |
10 | | -docker-compose up --build |
| 199 | +- **Bug Reports**: [Open an issue](https://github.com/codevoid048/codequest/issues) |
| 200 | +- **Feature Requests**: [Open an issue](https://github.com/codevoid048/codequest/issues) |
11 | 201 |
|
12 | | -# to track the stats like memory usage and stuff |
13 | | -docker stats |
| 202 | +--- |
0 commit comments