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
.env
file in theclient
directory. - 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
.env
file in theserver
directory. - 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