A real-time collaborative coding platform that allows developers to create rooms and code together seamlessly. Built with modern web technologies for optimal performance and user experience.
- Real-time Collaboration: Multiple users can edit the same code simultaneously
- Room-based System: Create and join coding rooms with unique identifiers
- Live Code Execution: Run code instantly with Judge0 API integration
- Multi-language Support: Support for popular programming languages
- Responsive Design: Works perfectly on desktop and mobile devices
- Syntax Highlighting: Beautiful code editor with syntax highlighting
- User Authentication: Secure user management and session handling
- Next.js - React framework for production-ready applications
- Tailwind CSS - Utility-first CSS framework for rapid UI development
- shadcn/ui - High-quality, accessible React components
- Socket.IO Client - Real-time bidirectional event-based communication
- Node.js - JavaScript runtime for server-side development
- Express.js - Fast, unopinionated web framework for Node.js
- Socket.IO - Real-time WebSocket communication
- MongoDB - NoSQL database for flexible data storage
- Judge0 API - Code execution engine for multiple programming languages
Make sure you have the following installed:
- Node.js (v18 or higher)
- MongoDB (local or cloud instance)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/ritik6559/CollabCode.git cd CollabCode -
Install dependencies
# Install frontend dependencies cd frontend npm install cd .. # Install backend dependencies cd backend npm install cd ..
-
Environment Setup
Create
.env.localin the frontend directory:JUDGE0_API_KEY=your-judge0-api-key
Create
.envin the backend directory:PORT=8080 MONGODB_URI= JWT_SECRET=your-secret-key
-
Start the development servers
Terminal 1 (Backend):
cd server npm run devTerminal 2 (Frontend):
npm run dev
-
Open your browser Navigate to
http://localhost:3000to start using CollabCode!
Socket.IO enables real-time synchronization of code changes across all connected users in a room. Every keystroke is broadcasted to maintain consistency.
Integration with Judge0 API allows users to run their collaborative code in multiple programming languages including:
- Python
- Java
- C++
- C
- And many more!
- Create unique rooms with custom names
- Share room codes with collaborators
If you have any questions or need help, please:
- Open an issue on GitHub
Built with ❤️ by Ritik