Online IDE Development

Main.java
Project Files
📄 Main.java
📄 Utils.java
📄 Config.java
1public class Main {
2    public static void main(String[] args) {
3        System.out.println("Hello, World!");
4    }
5}
Terminal
â–‹

Notice: This demo project is hosted on Google Cloud Platform (click to visit) and will be available until May 1st, 2025.

Introduction

A web-based integrated development environment where users can write, manage, and compile Java source code directly in the browser without installing any local compilers or development tools. Built with a microservices architecture, providing core features like project management, code editing, and compilation execution.

System includes multiple microservices:

  • Service Registry (Eureka): Service discovery
  • API Gateway: System entry point and request routing
  • Compiler Service: Provides compilation functionality
  • Dark Mode Service: Manages user dark mode preferences
  • Project Service: Handles project-related data, integrates with PostgreSQL
  • Angular UI: User interaction frontend

All services run in Docker containers and are automatically deployed to Google Cloud Platform using GitLab CI/CD.

System Architecture

The system adopts a microservices architecture, managing requests through an API Gateway, with independently deployed and scalable microservices. Deployed on Google Cloud Platform, click to visit. Service registry uses Eureka for service auto-discovery and registration.

Architecture Diagram

Requirements

  • Project and source code file management (CRUD)

  • Java source code compilation and execution

  • OAuth 2.0 (GitLab LRZ) authentication

  • Microservices architecture with independent deployment

  • API Gateway for request routing and authentication

  • Dark mode support (auto-switches every 30 seconds to showcase functionality)

  • Containerized deployment with Docker

  • Service auto-discovery and registration

Technologies

  • Frontend: Angular + Monaco Editor + NgRx

  • Frontend Deployment: Nginx Reverse Proxy + Performance Optimization

  • Backend: Spring Boot Microservices

  • Database: PostgreSQL / Redis Caching

  • Authentication: OAuth 2.0 (GitLab LRZ)

  • Containerization: Docker + Kubernetes

  • API Gateway: Spring Cloud Gateway

  • Service Discovery: Spring Cloud Eureka

  • CI/CD: GitLab CI/CD + Docker Registry

  • Cloud Deployment: Google Cloud Platform (GKE)

  • Monitoring: Prometheus + Grafana

  • Load Balancing: Nginx + Spring Cloud LoadBalancer

Challenges

  • How to efficiently handle concurrent compilation requests from multiple users (optimized to 200-500ms response time)

  • How to ensure code execution security (preventing malicious code execution)

  • How to optimize API Gateway performance (handling high concurrent requests)

  • How to improve Web IDE user experience (smooth code editing and error feedback)

  • How to ensure system scalability and fault tolerance (service auto-scaling)

  • How to build efficient CI/CD pipelines (automated testing and deployment)

  • How to optimize container image size and build speed (reducing deployment time)

  • How to implement service high availability (30-60s service auto-recovery)