https://coderover-frontend.onrender.com/
Note: The Docker-based Run Code and Submit Code functionalities are currently not available in the deployed version. To access these features, please run the project locally with Docker configured.
Coderover is a full-stack web application designed for remote coding interviews and solving challenging problems. It features a robust code execution engine powered by Docker and real-time collaboration capabilities using Socket.io, enabling interviewers and interviewees to code together in separate rooms.
Built on the MERN stack (MongoDB, Express, React, Node.js), Coderover offers secure authentication, asynchronous code execution, and real-time communication for a seamless coding experience.
- Docker: For containerization to isolate code execution
- Socket.io: Real-time communication for collaborative coding
- Node.js and Express: Backend API development
- MongoDB: Database for storing user data and problem sets
- React.js: Frontend with a modern and responsive user interface
- Redux: State management
- Tailwind: Designing UI
- Code Sanitization: Each code execution request is sanitized to prevent harmful operations
- Dockerized Code Execution: Separate Docker containers for each code execution, ensuring isolation from the host system
- Real-time Collaboration: Socket.io enables interviewers and interviewees to join rooms for real-time collaboration
- Asynchronous Execution: The server handles multiple code execution requests simultaneously without blocking other users
- Secure Authentication: User login and registration secured with JWT tokens
Here are some screenshots of Coderover in action:
git clone https://github.com/yourusername/coderover.git
cd coderover
-
Navigate to the backend directory:
cd Backend/
-
Install dependencies:
npm install
-
Create a
.env
file in the backend directory and add the following variables:MONGO_URI=your_mongodb_uri JWT_SECRET=your_jwt_secret PORT=desired_port_for_backend CORS_ORIGIN=* ACCESS_TOKEN_SECRET=your_secret ACCESS_TOKEN_EXPIRY=days REFRESH_TOKEN_SECRET=your_secret REFRESH_TOKEN_EXPIRY=days CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret
-
Start the backend server:
npm run dev
-
Navigate to the frontend directory:
cd Frontend/
-
Install dependencies:
npm install
-
Create a
.env
file in the frontend directory and add the following variables:VITE_BACKEND_URL=http://localhost:8000/api/v1 VITE_BACKEND_URL_FOR_SOCKET=http://localhost:8000
-
Start the frontend application:
npm run dev
- Open Docker desktop
- Container will get formed automatically and destroyed after code execution
You can now register or log in, create coding rooms, and collaborate in real-time!
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make to Coderover are greatly appreciated.
If you have any ideas for new features, bug fixes, or improvements, feel free to submit a pull request. Here's how you can get started:
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Pranav Jarande
- Email: jarandepranav2004@gmail.com
For questions, feedback, or collaboration opportunities, feel free to reach out!