Skip to content

Commit e9d9dfa

Browse files
committed
docs: update readme
1 parent 5aad702 commit e9d9dfa

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ Technologies: Angular, Angular-Cli, Angular-Material, Typescript, Spring Boot, N
66

77
[![CodeQL](https://github.com/Angular2Guy/AngularMicroFrontendsAndMicroServices/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/Angular2Guy/AngularMicroFrontendsAndMicroServices/actions/workflows/codeql-analysis.yml)
88

9+
## Articles
10+
* [Microfrontends in a Microservice Architecture](https://angular2guy.wordpress.com/2024/11/16/microfrontends-in-a-microservice-architecture/)
11+
912
## Mission Statement
1013
The project shows howto build a collection of Microservices with their own Angular Microfrontends. The Microfrontends are the integrated in the shell application to give the user the impression of a single frontend. That enables the independend development of the Microservices by different teams with a user friendly modular integrated frontend -> no frontend monolith.
1114

@@ -19,12 +22,40 @@ The [System Context Diagram](structurizr/diagrams/SystemContext.svg), the [Conta
1922
### Flight Selection
2023
The Flight Selection Microservice enables the user to select and book a flight. The Microservice has an Angular Frontend and a NestJs Typescript backend. The Postgresql database is used to data storage and ApacheMQ Artemis with Mqtt to send the bookings.
2124

25+
For development was the Visual Studio Code ide used.
26+
2227
### Hotel Selection
2328
The Hotel Selection Microservice enables the user to select and book a hotel. The Microservice has an Angular Frontend and Spring Boot Kotlin backend. The Postgresql database is used to data storage and ApacheMQ Artemis with Mqtt to send the bookings.
2429

30+
For development was the Visual Studio Code ide for the frontend and Intellij CE for the backend used.
31+
2532
### Payment
2633
The Payment Microservice integrates the Hotel Selection and Flight Selection frontends and adds the payment functionality. For the frontend integration iframes are used to have full independence of used Angular versions. Native Federation would be an alternative but then there are dependencies in versioning and the Microfrontends are not fully precompiled. The Microservice has an Angular Frontend and a Spring Boot Java backend. The Postgresql database is used to data storage and ApacheMQ Artemis with Mqtt to receive the flight and hotel bookings.
2734

35+
For development was the Eclipse ide used.
36+
2837
## Microservice architecture
2938
All Microservices use the Clean Architecture with the Rings Adapter, Usecase, Domain to structure the code. The Dtos for the Rest controllers and the Mqtt clients are decoupled by Mappers to be able to change interfaces and database tables independently. The dependency management is done by injection.
3039

40+
## Run the System
41+
- Build the system with:
42+
43+
./gradlew clean build -PwithAngular=true -PwithNestJs=true
44+
45+
- Create the databases with:
46+
47+
docker run --name hotel-selection-postgres -e POSTGRES_PASSWORD=sven1 -e POSTGRES_USER=sven1 -e POSTGRES_DB=hotel_selection -p 5432:5432 -d postgres
48+
49+
docker run --name flight-selection-postgres -e POSTGRES_PASSWORD=sven1 -e POSTGRES_USER=sven1 -e POSTGRES_DB=flight_selection -p 5433:5432 -d postgres
50+
51+
docker run --name payment-postgres -e POSTGRES_PASSWORD=sven1 -e POSTGRES_USER=sven1 -e POSTGRES_DB=payment -p 5434:5432 -d postgres
52+
53+
- Run the database script [initDB.sql](flightSelection-backend/src/nestjs/init_db/initDB.sql) with the tool of you choice on the 'flight_selection' database.
54+
55+
- Create the ActiveMQ Artemis server with:
56+
57+
docker run --name local-artemis-microservices -p 61616:61616 -p 1883:1883 -p 8161:8161 -e ARTEMIS_USER=artemis1 -e ARTEMIS_PASSWORD=artemis1 apache/activemq-artemis:latest-alpine
58+
59+
- Run the 'buildDocker.sh' scripts in the flightSelection-backend, hotelSelection-backend and the payment-backend.
60+
61+
- Access the system with a browser with 'http://localhost:8080/'.

0 commit comments

Comments
 (0)