GreetCode is a comprehensive full-stack competitive programming platform designed for developers to practice coding, solve problems, and engage with a community. Inspired by platforms like LeetCode, it provides a seamless environment for code execution, AI-powered assistance, and structured learning.
- Advanced Code Editor: Integrated with Monaco Editor for a rich, IDE-like experience with syntax highlighting and language support.
- Problem Solving & Submissions: A vast library of coding challenges across various difficulty levels.
- AI Assistance: Integrated with Google Gemini AI to provide code explanations, hints, and feedback.
- Discussion Forums: A community space to share solutions, ask questions, and discuss problem-oriented strategies.
- User Profiles: Personalized Dashboards to track progress, submission history, and solved problems.
- Admin Panel: Robust management system for creating problems, managing users, and monitoring activities.
- Video Solutions: Support for video-based problem walkthroughs.
- Real-time Performance: Powered by Redis for efficient caching and high-speed data retrieval.
- Framework: React (Vite-powered)
- State Management: Redux Toolkit
- Styling: Tailwind CSS
- Components: Radix UI, Lucide React
- Animations: Framer Motion
- Code Editor: Monaco Editor
- Environment: Node.js
- Framework: Express.js
- Database: MongoDB (Mongoose)
- Caching: Redis
- Authentication: JWT & Bcrypt
- AI Service: Google Generative AI (Gemini)
- File Storage: Cloudinary
- Node.js (v18+)
- MongoDB (Local or Atlas)
- Redis Server
- API Keys for Google Gemini and RapidAPI (Judge0)
-
Clone the repository:
git clone <repository-url> cd greetcode
-
Setup Backend:
cd backend npm installCreate a
.envfile in thebackendfolder and add the following:PORT=5000 MONGO_URI=your_mongodb_uri JWT_SECRET=your_jwt_secret FRONTEND_URL=http://localhost:5173 REDIS_HOST=your_redis_host REDIS_PORT=your_redis_port REDIS_PASSWORD=your_redis_password GOOGLE_GENAI_API_KEY=your_gemini_key rapidapi_key=your_judge0_key rapidapi_host=your_judge0_host
-
Setup Frontend:
cd ../frontend npm install
-
Start Backend:
cd backend npm run dev -
Start Frontend:
cd frontend npm run dev
greetcode/
├── backend/ # Express API, MongoDB models, Redis config
│ ├── config/ # Environment & Database configurations
│ ├── controllers/ # Request handlers
│ ├── models/ # Mongoose schemas
│ ├── routes/ # API endpoints
│ └── utils/ # Helper functions
├── frontend/ # React application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Main application views
│ │ ├── store/ # Redux store logic
│ │ └── utils/ # Client-side helpers
└── README.md
This project is licensed under the ISC License.