CodeLeet is a web application designed to serve as a clone of the popular coding practice platform, LeetCode. It provides a platform for developers to solve coding problems, improve their problem-solving skills, and prepare for technical interviews. CodeLeet offers a collection of coding challenges and a user-friendly interface to solve and test solutions.
CodeLeet now includes DockerWiz, a code runner service, for executing code submissions securely and efficiently. DockerWiz provides an isolated Docker environment with specified constraints, ensuring the safety and reliability of code execution. This integration allows CodeLeet to run user-submitted code with additional features such as constraints on execution time and network access.
-
Coding Challenges: CodeLeet comes with a vast collection of coding problems across various difficulty levels and categories such as algorithms, data structures, dynamic programming, and more.
-
User Authentication: Users can sign up, log in, and manage their profiles. Authentication is implemented to ensure secure access to the platform.
-
Code Editor: An in-browser code editor allows users to write and test their solutions directly on the platform. Syntax highlighting and code formatting are included for a seamless coding experience.
-
Test Cases: Users can run their code against predefined test cases to verify the correctness of their solutions.
-
Discussion Forum: CodeLeet provides a discussion forum where users can ask questions, share solutions, and engage in technical discussions related to coding challenges. (Planned)
-
Leaderboard: A global leaderboard showcases the top performers based on their solutions and efficiency. (Planned)
- Node.js (v20 or higher)
- npm (v9 or higher)
git clone https://github.com/onkarr19/codeleet.git
cd codeleet
cd server
npm install
Create a .env
in server directory. This file will contain your environment variables.
# .env
JWT_SECRET="secret-key"
PORT=3000
RABBITMQ_HOSTNAME="rabbitmq-host"
RABBITMQ_PORT="rabbitmq-host-port" # 5671
RABBITMQ_USERNAME="username"
RABBITMQ_PASSWORD="password"
RABBITMQ_PROTOCOL=amqps
cd client
npm install
# Start the server
cd server
npm start
You may alternatively start server using nodemon
:
npx nodemon index.js
# Start the client
cd client
npm run dev
The server will run on http://localhost:3000
, and the client will run on http://localhost:5000
.
Make sure you have Docker installed on your machine. Clone the DockerWiz repository:
git clone https://github.com/onkarr19/DockerWiz.git
cd DockerWiz
Follow the instructions in the DockerWiz README to set up and start the DockerWiz service. DockerWiz provides a secure environment for executing code submissions.
We welcome contributions to improve CodeLeet. If you'd like to add new features, fix bugs, or suggest enhancements, please follow these steps:
- Fork the repository.
- Create a new branch for your feature:
git checkout -b feature-name
. - Make your changes and commit them:
git commit -m 'Add some feature'
. - Push the branch to your fork:
git push origin feature-name
. - Submit a pull request to the
main
branch of the original repository.
Please ensure that your code follows the established coding standards, and include appropriate tests when necessary.
This project is licensed under the MIT License - see the LICENSE file for details.
We would like to express our gratitude to the creators of LeetCode for inspiring this project. Special thanks to the open-source community for providing invaluable resources and tools.
Happy coding!