This project is a real-time code collaboration platform where multiple users can collaborate by creating and joining rooms using a Room ID. Users can leave comments on specific lines of code, which are displayed in the right-hand sidebar along with the name of the person who made the comment. Additionally, all users within the same room can chat with each other in real-time.
- Real-time Code Collaboration: Multiple users can write and edit code simultaneously.
- Room-based Collaboration: Users can create a room and invite others to join by sharing a unique Room ID.
- Inline Code Comments: Users can leave comments on individual lines of code, visible to everyone in the room.
- Real-time Chat: All users in the room can chat with each other through a built-in chat feature.
- Frontend: React.js
- Backend: Node.js with Express.js
- Real-Time Communication: Socket.IO for real-time communication between clients and the server.
- Create a Room: A user can create a new room for collaboration.
- Join a Room: Other users can join the room using the provided Room ID.
- Collaborate on Code: All users in the room can edit and collaborate on the code in real time.
- Add Comments: Users can add comments to specific lines of code. These comments will appear on the right-hand sidebar along with the name of the user who posted it.
- Real-Time Chat: Users can chat with each other via the chat panel, allowing for real-time communication during the collaboration session.
codepair_demo.mp4
Make sure you have the following installed:
- Node.js
- npm (Node Package Manager)
-
Clone the repository:
git clone https://github.com/gresey/CodePair.git cd CodePair
-
Install dependencies for both the server and client.
For the Server:
cd server npm install
For the Client:
cd client npm install
-
Start the server:
cd server npm start
-
Start the client:
In a separate terminal, run:
cd client npm start
-
Open your browser and navigate to
http://localhost:3000
to start using the application.
Feel free to fork this repository, make your changes, and submit a pull request to contribute to the project.