This project aims to explain how to build a fully reactive web application with Spring Boot, Spring WebFlux, Angular and MongoDB. It demonstrates how to deal with concurrent modifications using optimistic locking, Change Streams and Server Sent Events.
Folder | Description |
---|---|
docker | Contains the docker-compose.yml used to setup the application |
todo-list-application | Spring boot application (back-end) |
todo-list-ui | Angular application (front-end) |
In order to build the application you need to have the following softwares installed:
- open JDK or oracle JDK >= 8
- docker & docker compose
- npm
$ build.sh
$ start.sh
Once the application is started you can access it using the following links :
Name | Link |
---|---|
UI | http://localhost:8080 |
Swagger UI | http://localhost:8080/swagger-ui/#/item-controller |
Mongo Express | http://0.0.0.0:8081/ |
If you only want to start mongoDb, execute the following command
$ start.sh -mongo-only
$ stop.sh
You need to have docker installed to build the application.
Ensure that the URL of the application has been correctly configured in the following file.
todo-list-ui/src/app/environments/environment.prod.ts
Then build the application in production mode. To do so, go the the root folder and execute the following command.
$ mvnw clean install -Pprod
You need to have the Heroku client installed to deploy the application (see Heroku client)
After having built the application in production mode, follow these steps:
$ cd todo-list-application
$ heroku login
$ heroku container:login
$ heroku container:push web -a application_name_in_heroku
$ heroku container:release web -a application_name_in_heroku