π A powerful and modern online code editor that supports both solo and collaborative coding experiences β built with the Monaco Editor, featuring real-time cursor sync, chat, and future-ready video call integration.
-
π οΈ Custom Rooms
- Solo Mode β Create a personal coding space to write and execute code privately.
- Collaborative Mode β Invite others to your room and code together in real-time.
-
π Secure User Authentication
- JWT Authentication with Access & Refresh Tokens for secure login sessions.
- Automatic token refresh without forcing users to log in repeatedly.
-
π§ Built with:
- JavaScript, Vite, Tailwind CSS
- Docker, Monaco Editor
-
π¬ Integrated Chat
- Communicate with your collaborators directly inside the room using WebSocket-based chat.
-
π±οΈ Monaco Editor
- Live cursor synchronization for multiple users.
- IntelliSense, syntax highlighting, and theming powered by Monaco.
-
οΏ½ Isolated Code Execution
- Uses a dedicated Code Executor microservice with Docker to safely execute user code in a sandboxed environment.
- Supports Python, JavaScript, Java, and C++.
βββββββββββββββ βββββββββββββββ ββββββββββββββββββββ
β Frontend β ββββΊ β Backend β ββββΊ β Code Executor β
β (Render) β β (Render) β β (Render/Docker) β
βββββββββββββββ βββββββββββββββ ββββββββββββββββββββ
β
βΌ
βββββββββββββ
β MongoDB β
βββββββββββββ
| Service | Description |
|---|---|
| Frontend | React + Vite app with Monaco Editor |
| Backend | Node.js/Express API with WebSocket support |
| Code Executor | Isolated Docker service for running user code |
- π₯ Webcam Video Calling β Built-in video call for pair programming.
- π Multi-file Support β Upload folders and edit multiple files.
- π AI Code Assistant β AI-powered code completion and debugging.
| Layer | Technology |
|---|---|
| Frontend | JavaScript, Vite, Tailwind CSS |
| Editor | Monaco Editor |
| Chat & Sync | WebSockets |
| Backend | Node.js, Express |
| Execution | Docker (Code Executor Service) |
| Database | MongoDB |
| Hosting | Render (All Services) |
CodeSphere/
βββ frontend/ β Render Web Service (Static Site)
βββ backend/ β Render Web Service (Node.js)
βββ code-executor/ β Render Web Service (Docker)
- Create a new Web Service on Render
- Set Root Directory to
code-executor - Set Environment to
Docker - Deploy and copy the service URL
- Create a new Web Service on Render
- Set Root Directory to
backend - Add environment variables:
MONGO_URI=your_mongodb_connection_string CODE_EXECUTOR_URL=https://your-code-executor.onrender.com JWT_SECRET=your_jwt_secret - Deploy
- Create a new Static Site on Render
- Set Root Directory to
frontend - Add environment variable:
VITE_BACKEND_URL=https://your-backend.onrender.com - Deploy
# Clone the repository
git clone https://github.com/Sahilagarwal623/CodeSphere.git
cd CodeSphere
# Terminal 1: Start Code Executor
cd code-executor
npm install
npm start
# Terminal 2: Start Backend
cd backend
npm install
npm start
# Terminal 3: Start Frontend
cd frontend
npm install
npm run devBackend (.env)
MONGO_URI=mongodb://localhost:27017/codesphere
CODE_EXECUTOR_URL=http://localhost:3001
JWT_SECRET=your_secret
Frontend (.env)
VITE_BACKEND_URL=http://localhost:5000