https://github.com/bhavishya2601/compileonix
Code Editor with Real-time Collaboration
https://github.com/bhavishya2601/compileonix
complier expressjs mongodb nodejs reactjs socket-io
Last synced: 2 months ago
JSON representation
Code Editor with Real-time Collaboration
- Host: GitHub
- URL: https://github.com/bhavishya2601/compileonix
- Owner: Bhavishya2601
- License: mit
- Created: 2025-02-07T12:52:15.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-12T13:15:17.000Z (over 1 year ago)
- Last Synced: 2025-10-08T08:56:22.332Z (9 months ago)
- Topics: complier, expressjs, mongodb, nodejs, reactjs, socket-io
- Language: JavaScript
- Homepage:
- Size: 128 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CompileOnix
**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.
---
## Features
### 1. Multi-language Code Compilation
- Supports C, C++, Java, and Python.
- Compile and run code directly from the browser.
### 2. Real-time Collaboration
- Create or join rooms for shared coding sessions.
- All code changes are reflected instantly across all participants.
### 3. Mouse Movement Tracking
- Tracks and displays each participant's mouse movements in real-time.
- Each user's cursor is distinguished by a unique color and label.
### 4. Real-time Communication
- Enables real-time communication among participants in a room to facilitate effective collaboration.
### 5. Secure Authentication
- Users must authenticate before accessing the platform to ensure secure collaboration.
---
## Getting Started
### Prerequisites
- **Node.js** v14.0 or higher
- **MongoDB** for database management
- A web browser (Chrome, Firefox, or Edge recommended)
### Installation
1. Clone the repository:
```bash
git clone https://github.com/bhavishya2601/CompileOnix.git
```
2. Navigate to the project directory:
```bash
cd CompileOnix
```
3. Navigate to the client directory:
```bash
cd client
```
4. Install client dependencies:
```bash
npm install
```
5. Set up environment variables for the client:
- Create a `.env` file in the `client` directory.
- Add the following variables from `.env.sample`.
6. Start the server:
```bash
npm run dev
```
7. Open a new terminal and navigate to the server directory:
```bash
cd ../server
```
8. Install server dependencies:
```bash
npm install
```
9. Set up environment variables for the server:
- Create a `.env` file in the `server` directory.
- Add the following variables from `.env.sample`.
9. Start the server:
```bash
nodemon index.js
```
---
## Usage
### Authentication
- Register or log in to access the platform.
### Creating a Room
1. Click the "Create Room" button.
2. Share the generated room ID with collaborators.
### Joining a Room
1. Enter the room ID provided by the room creator.
2. Start collaborating in real-time.
### Mouse Movement Tracking
- Mouse movements will automatically be displayed for all participants in the room.
### Running Code
- Write your code in the editor.
- Select the programming language from the dropdown.
- Click "Compile" to compile and execute the code.
---
## Tech Stack
- **Frontend:** React.js
- **Backend:** Node.js, Express.js
- **Database:** MongoDB
- **WebSockets:** Socket.io for real-time collaboration
- **Authentication:** JSON Web Tokens (JWT)
---
## Contributing
Contributions are welcome! To contribute:
1. Fork the repository.
2. Create a new branch:
```bash
git checkout -b feature/your-feature-name
```
3. Commit your changes:
```bash
git commit -m 'Add your feature'
```
4. Push to the branch:
```bash
git push origin feature/your-feature-name
```
5. Open a pull request.
---
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.
---
## Contact
For any questions or feedback, feel free to reach out:
- **Email**: bhavishya2601garg@gmail.com
- **GitHub**: [bhavishya2601](https://github.com/bhavishya2601)