A modern, real-time collaborative code editor that allows multiple developers to write, edit, and execute code together in the same virtual room.
- Real-time Collaboration: Multiple users can edit code simultaneously
- Live Code Execution: Run code directly in the browser with real-time output
- Multi-language Support: JavaScript, Python, Java, and C++
- Room-based Sessions: Create and join coding rooms with unique IDs
- User Presence: See who's currently in your coding session
- Modern UI: Clean, dark theme with responsive design
- Typing Indicators: See when others are typing
- Copy Room ID: Easy sharing of room links
- React - UI framework
- Vite - Build tool and dev server
- Monaco Editor - Code editor (VS Code editor)
- Socket.io Client - Real-time communication
- CSS3 - Modern styling with gradients and animations
- Node.js - Runtime environment
- Socket.io - WebSocket communication
- Express - Web framework
- Node.js (v14 or higher)
- npm or yarn
-
Clone the repository
git clone https://github.com/nikunjagarwal17/code-sync.git cd code-sync -
Install dependencies
# Install root dependencies npm install # Install frontend dependencies cd frontend npm install # Install backend dependencies cd ../backend npm install
-
Start the application
Backend (Terminal 1):
cd backend node index.jsFrontend (Terminal 2):
cd frontend npm run dev -
Access the application
- Open your browser and go to
http://localhost:5000 - Create a new room or join an existing one
- Start coding collaboratively!
- Open your browser and go to
- Create a Room: Click "Create New Room" to generate a unique room ID
- Join a Room: Enter a room ID and your username to join an existing session
- Code Together: Write code in the Monaco editor with real-time synchronization
- Execute Code: Use the "Execute" button to run your code and see the output
- Share: Copy the room ID to invite others to your coding session
Modern login interface with dark theme and green accents.
- Sidebar: Room info, user list, language selector
- Editor: Monaco editor with syntax highlighting
- Console: Input and output areas for code execution
Create a .env file in the backend directory:
PORT=5000- JavaScript (Node.js)
- Python
- Java
- C++
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Nikunj Agarwal
- GitHub: @nikunjagarwal17
- Monaco Editor for the excellent code editing experience
- Socket.io for real-time communication
- React and Vite for the modern development experience
Built with 💙 by Nikunj Agarwal
