A modern, scalable web-based IDE that supports multiple programming languages with a beautiful, responsive interface.
- Multi-Language Support: Python, JavaScript, Java, C++, C, and Bash
- Modern UI: Beautiful, responsive HTML interface
- Real-time Execution: Execute code and see results instantly
- Language Switching: Easy switching between programming languages
- Error Handling: Comprehensive error reporting and validation
- Cloud Deployment: Ready for Railway, Render, and other platforms
- Security: Input validation and execution timeouts
- Java 17 with Spring Boot 3.2.0
- RESTful API with proper error handling
- Multi-threaded execution with timeout protection
- Docker containerization
- Pure HTML/CSS/JavaScript for maximum compatibility
- Responsive design for mobile and desktop
- Modern UI with professional styling
- Docker (for containerized deployment)
- Java 17+ (for local development)
- Maven (for local development)
-
Clone the repository
git clone https://github.com/KrishJani/Scalable-Multi-Language-IDE.git cd Scalable-Multi-Language-IDE -
Build and run the backend
cd backend ./mvnw clean package java -jar target/ide-java-1.0.0.jar -
Access the application
- Backend API: http://localhost:8080
- Frontend: Open
index.htmlin your browser
-
Build and run with Docker
docker build -t multi-language-ide . docker run -p 8080:8080 -p 3000:3000 multi-language-ide -
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- Push to GitHub (already done)
- Go to Railway.app
- Sign up with GitHub
- Click "New Project" β "Deploy from GitHub repo"
- Select your repository
- Railway will automatically deploy!
Your IDE will be live at: https://your-app-name.railway.app
POST /api/execute
Content-Type: application/json
{
"code": "print('Hello World!')",
"language": "python"
}Response:
{
"output": "Hello World!",
"error": ""
}GET /api/languagesResponse:
{
"python": "Python 3",
"javascript": "JavaScript (Node.js)",
"java": "Java",
"cpp": "C++",
"c": "C",
"bash": "Bash Shell"
}SPRING_PROFILES_ACTIVE: Spring profile (default: docker)REACT_APP_API_URL: Backend API URL (default: http://localhost:8080)
| Language | Extension | Compiler/Interpreter |
|---|---|---|
| Python | .py | python3 |
| JavaScript | .js | node |
| Java | .java | javac + java |
| C++ | .cpp | g++ |
| C | .c | gcc |
| Bash | .sh | bash |
- Input Validation: Code length limits and language validation
- Execution Timeout: 10-second timeout to prevent infinite loops
- Sandboxed Execution: Temporary files are cleaned up automatically
- Error Isolation: Proper error handling and reporting
- Monaco Editor: Professional code editor with syntax highlighting
- Language Selection: Easy switching between programming languages
- Theme Toggle: Dark and light theme support
- File Operations: Upload and download code files
- Responsive Design: Works on desktop and mobile devices
- Real-time Feedback: Loading states and error messages
The application uses multi-stage Docker builds for optimal performance:
- Backend: Java 17 with all necessary compilers
- Frontend: Node.js 18 with optimized build
- Health Checks: Automatic service health monitoring
- Networking: Isolated Docker network for security
βββ backend/
β βββ src/main/java/com/replitclone/
β β βββ controller/ # REST controllers
β β βββ model/ # Data models
β β βββ service/ # Business logic
β β βββ ReplitCloneApplication.java
β βββ Dockerfile
βββ frontend/
β βββ src/
β β βββ App.js # Main React component
β β βββ App.css # Styling
β βββ Dockerfile
βββ docker-compose.yml
- Update
CodeExecutor.javawith new language support - Add language to
SUPPORTED_LANGUAGESmap - Update frontend language dropdown
- Add default code template
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.
- Backend not starting: Check if Java 17+ is installed
- Frontend build fails: Ensure Node.js 18+ is installed
- Docker build fails: Check Docker daemon is running
- Code execution fails: Verify compilers are installed in Docker container
# View all logs
docker-compose logs
# View specific service logs
docker-compose logs backend
docker-compose logs frontendHappy Coding! π