CompileOnix is a real-time collaborative code compiler platform that supports C, C++, Java, and Python. It allows users to compile and run code, collaborate with others in shared rooms, and track each participant's mouse movements in real-time. User authentication ensures a secure coding environment.
- Supports C, C++, Java, and Python.
- Compile and run code directly from the browser.
- Create or join rooms for shared coding sessions.
- All code changes are reflected instantly across all participants.
- Tracks and displays each participant's mouse movements in real-time.
- Each user's cursor is distinguished by a unique color and label.
- Enables real-time communication among participants in a room to facilitate effective collaboration.
- Users must authenticate before accessing the platform to ensure secure collaboration.
- Node.js v14.0 or higher
- MongoDB for database management
- A web browser (Chrome, Firefox, or Edge recommended)
-
Clone the repository:
git clone https://github.com/bhavishya2601/CompileOnix.git
-
Navigate to the project directory:
cd CompileOnix -
Navigate to the client directory:
cd client -
Install client dependencies:
npm install
-
Set up environment variables for the client:
- Create a
.envfile in theclientdirectory. - Add the following variables from
.env.sample.
- Create a
-
Start the server:
npm run dev
-
Open a new terminal and navigate to the server directory:
cd ../server -
Install server dependencies:
npm install
-
Set up environment variables for the server:
- Create a
.envfile in theserverdirectory. - Add the following variables from
.env.sample.
- Create a
-
Start the server:
nodemon index.js
- Register or log in to access the platform.
- Click the "Create Room" button.
- Share the generated room ID with collaborators.
- Enter the room ID provided by the room creator.
- Start collaborating in real-time.
- Mouse movements will automatically be displayed for all participants in the room.
- Write your code in the editor.
- Select the programming language from the dropdown.
- Click "Compile" to compile and execute the code.
- Frontend: React.js
- Backend: Node.js, Express.js
- Database: MongoDB
- WebSockets: Socket.io for real-time collaboration
- Authentication: JSON Web Tokens (JWT)
Contributions are welcome! To contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -m 'Add your feature' - Push to the branch:
git push origin feature/your-feature-name
- Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for more details.
For any questions or feedback, feel free to reach out:
- Email: bhavishya2601garg@gmail.com
- GitHub: bhavishya2601