Skip to content

Bhavishya2601/Compileonix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CompileOnix

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:

    git clone https://github.com/bhavishya2601/CompileOnix.git
  2. Navigate to the project directory:

    cd CompileOnix
  3. Navigate to the client directory:

    cd client
  4. Install client dependencies:

    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:

    npm run dev
  7. Open a new terminal and navigate to the server directory:

    cd ../server
  8. Install server dependencies:

    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.
  10. Start the server:

    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:
    git checkout -b feature/your-feature-name
  3. Commit your changes:
    git commit -m 'Add your feature'
  4. Push to the branch:
    git push origin feature/your-feature-name
  5. Open a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for more details.


Contact

For any questions or feedback, feel free to reach out:

About

Code Editor with Real-time Collaboration

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published