Simple online integrated development environment (IDE) built with microservices using the Spring framework. Features include:
- ability to connect to a microcontroller to toggle dark mode
- projects and files stored in a database (PostgreSQL)
- code compilation in Java and C
- UI developed with Angular
- authentication and authorization via OAuth (LRZ)
- shared projects between users
- impoved security
To run the OnlineIDE locally, use the application-dev.yml in addition to the application.yml file in the api-gateway and the project microservice. The application-dev.yml file can be enabled by writing spring.profiles.active: "dev"
in the respective application.yml files (already there, commented out). This implies using a H2 database and another GitLab application that redirects to localhost:8000/login. In order to prevent a temporary forwarding error in the api-gateway service at startup it is best to run the microservices by the command ./mvnw spring-boot:run
in the following order:
- discovery-service
- ui-service, project-service, compiler-service, darkmode-service
- api-gateway-service
Startup using docker-compose
:
This is tested on a fresh Ubuntu 18.04 installation with maven 3.6.0, openjdk-11, docker, docker-compose, nodejs 12 and angular.
- Enable the dev profile in the project service and the api-gateway.
- In the project root directory:
mvn package -DskipTests=true
sudo docker-compose -f docker-compose.dev.yml up --build
- Wait a few minutes until everything settles.
- Access the Online IDE at http://localhost:8000