Skip to content

Distributed and highly scalable supermarket chain management system

License

Notifications You must be signed in to change notification settings

JoakimTeixeira/loyalty-as-a-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Loyalty-as-a-Service (LaaS)

Distributed and highly scalable supermarket chain management system

Running the Project

To get started:

  1. Fork the repository and add your AWS and Docker credentials to the environment variables in the Access.sh file.

  2. 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

  3. 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
    
  4. 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
    

To-do

  • 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