Distributed and highly scalable supermarket chain management system
To get started:
-
Fork the repository and add your AWS and Docker credentials to the environment variables in the
Access.sh
file. -
This project uses docker to containerize the Quarkus microservices, so log into your docker account with the command:
docker login
Or use the
Docker Desktop
application in your operational system -
Then run the following command to provision the AWS resources:
source ./scripts/terraform/DeploymentAutomation-ubuntu.sh
To destroy all resources, run the command:
source ./scripts/terraform/UndeploymentAutomation.sh
If you want to remove all your credentials from the project, run the command:
source ./scripts/auth/CleanProject.sh
-
Camunda is responsible for orchestrating the business logic of the application. To deploy the Camunda BPMN files, open the Camunda Modeler program and enter this URL as the deployment URL:
http://<CAMUNDA-AWS-EC2-PUBLIC-DNS>:8080/engine-rest/deployment/create
- Implement Postman scripts for E2E tests of BPMN diagrams
- Model BPMN diagrams for new microservices
- Adapt BPMN diagrams Camunda and microservices communicate through Kong endpoints
- Automate EC2 URL replacement in BPMN diagrams (XML files) and Postman script
- Automate Kong routes and servers creation
- Automate Kong and Konga configuration on docker images
- Automate Konga UI to initiate with custom admin user + Kong connection
- Create Kong scripts to serve as API Gateway for the microservices
- Automate AWS key pairs provisioning
- Implement the "sold product" microservice
- Configure terraform state to be backed up in AWS S3
- Make the terraform state detect changes when the Quarkus docker image is created
- Remove Quarkus docker images from the local machine and Docker Hub
- Avoid creating Kong services and routes again if they already exist
- Integrate an RDS database into each microservice to decrease coupling
- Update replacement script (sed) to leverage multiple Kafka instances in the same machine