A feature-rich LeetCode clone designed to provide a seamless coding and problem-solving experience for developers. This project mimics the LeetCode UI and functionality with added enhancements to improve usability and performance.
- Dynamic Problem Solving: Responsive interface for solving coding problems with real-time feedback.
- Shimmer Loading: Smooth loading animations for a polished user experience.
- Resizable Code Editor: Powered by Monaco Editor, allowing you to customize your coding space.
- Cookie-based Authentication: Secure and persistent user sessions.
- Judge0 API Integration: Fast and reliable code execution support for multiple programming languages.
- Dark/Light Mode: Tailored for all-day coding sessions.
- Real-time Updates: Pooling mechanisms for fetching results dynamically.
- Debouncing for Inputs: Enhanced performance for search and filters.
- Material UI and Tailwind CSS: Beautiful and responsive UI components.
- Indexed DB: Persistent Storage for storing the user's code changes.
To run this project, you will need to add the following environment variables to your .env
file:
VITE_API_BASE_URL
- Backend API URL for the application.
VITE_JUDGEAPI_BASE_URL
- URL for the Judge0 API service.
VITE_JUDGEAPI_API_KEY
- Judge0 API Key.
VITE_JUDGEAPI_HOST
- Judge0 Host name.
Client: React, Zustand, TailwindCSS, Material UI, TanStack Query, TanStack Table, Monaco Editor.
Server: NestJS, MongoDB, TypeScript (referenced in the backend repository).
Clone the project
git clone https://github.com/kdj309/leetcode-clone
Install dependencies
npm install
Start the server
npm run dev