11# Shipment List Demo Application - AWS in PROD and LocalStack on DEV environment
22
3- <img src="https://img.shields.io/badge/LocalStack-deploys-4D29B4.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAKgAAACoABZrFArwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAALbSURBVHic7ZpNaxNRFIafczNTGIq0G2M7pXWRlRv3Lusf8AMFEQT3guDWhX9BcC/uFAr1B4igLgSF4EYDtsuQ3M5GYrTaj3Tmui2SpMnM3PlK3m1uzjnPw8xw50MoaNrttl+r1e4CNRv1jTG/+v3+c8dG8TSilHoAPLZVX0RYWlraUbYaJI2IuLZ7KKUWCisgq8wF5D1A3rF+EQyCYPHo6Ghh3BrP8wb1en3f9izDYlVAp9O5EkXRB8dxxl7QBoNBpLW+7fv+a5vzDIvVU0BELhpjJrmaK2NMw+YsIxunUaTZbLrdbveZ1vpmGvWyTOJToNlsuqurq1vAdWPMeSDzwzhJEh0Bp+FTmifzxBZQBXiIKaAq8BBDQJXgYUoBVYOHKQRUER4mFFBVeJhAQJXh4QwBVYeHMQJmAR5GCJgVeBgiYJbg4T8BswYPp+4GW63WwvLy8hZwLcd5TudvBj3+OFBIeA4PD596nvc1iiIrD21qtdr+ysrKR8cY42itCwUP0Gg0+sC27T5qb2/vMunB/0ipTmZxfN//orW+BCwmrGV6vd63BP9P2j9WxGbxbrd7B3g14fLfwFsROUlzBmNM33XdR6Meuxfp5eg54IYxJvXCx8fHL4F3w36blTdDI4/0WREwMnMBeQ+Qd+YC8h4g78wF5D1A3rEqwBiT6q4ubpRSI+ewuhP0PO/NwcHBExHJZZ8PICI/e73ep7z6zzNPwWP1djhuOp3OfRG5kLROFEXv19fXP49bU6TbYQDa7XZDRF6kUUtEtoFb49YUbh/gOM7YbwqnyG4URQ/PWlQ4ASllNwzDzY2NDX3WwioKmBgeqidgKnioloCp4aE6AmLBQzUExIaH8gtIBA/lFrCTFB7KK2AnDMOrSeGhnAJSg4fyCUgVHsolIHV4KI8AK/BQDgHW4KH4AqzCQwEfiIRheKKUAvjuuu7m2tpakPdMmcYYI1rre0EQ1LPo9w82qyNziMdZ3AAAAABJRU5ErkJggg=="> <img src="https://img.shields.io/badge/AWS-deploys-F29100.svg?logo=amazon">
43
5- ### Prerequisites
4+ | Environment | <img src="https://img.shields.io/badge/LocalStack-deploys-4D29B4.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAKgAAACoABZrFArwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAALbSURBVHic7ZpNaxNRFIafczNTGIq0G2M7pXWRlRv3Lusf8AMFEQT3guDWhX9BcC/uFAr1B4igLgSF4EYDtsuQ3M5GYrTaj3Tmui2SpMnM3PlK3m1uzjnPw8xw50MoaNrttl+r1e4CNRv1jTG/+v3+c8dG8TSilHoAPLZVX0RYWlraUbYaJI2IuLZ7KKUWCisgq8wF5D1A3rF+EQyCYPHo6Ghh3BrP8wb1en3f9izDYlVAp9O5EkXRB8dxxl7QBoNBpLW+7fv+a5vzDIvVU0BELhpjJrmaK2NMw+YsIxunUaTZbLrdbveZ1vpmGvWyTOJToNlsuqurq1vAdWPMeSDzwzhJEh0Bp+FTmifzxBZQBXiIKaAq8BBDQJXgYUoBVYOHKQRUER4mFFBVeJhAQJXh4QwBVYeHMQJmAR5GCJgVeBgiYJbg4T8BswYPp+4GW63WwvLy8hZwLcd5TudvBj3+OFBIeA4PD596nvc1iiIrD21qtdr+ysrKR8cY42itCwUP0Gg0+sC27T5qb2/vMunB/0ipTmZxfN//orW+BCwmrGV6vd63BP9P2j9WxGbxbrd7B3g14fLfwFsROUlzBmNM33XdR6Meuxfp5eg54IYxJvXCx8fHL4F3w36blTdDI4/0WREwMnMBeQ+Qd+YC8h4g78wF5D1A3rEqwBiT6q4ubpRSI+ewuhP0PO/NwcHBExHJZZ8PICI/e73ep7z6zzNPwWP1djhuOp3OfRG5kLROFEXv19fXP49bU6TbYQDa7XZDRF6kUUtEtoFb49YUbh/gOM7YbwqnyG4URQ/PWlQ4ASllNwzDzY2NDX3WwioKmBgeqidgKnioloCp4aE6AmLBQzUExIaH8gtIBA/lFrCTFB7KK2AnDMOrSeGhnAJSg4fyCUgVHsolIHV4KI8AK/BQDgHW4KH4AqzCQwEfiIRheKKUAvjuuu7m2tpakPdMmcYYI1rre0EQ1LPo9w82qyNziMdZ3AAAAABJRU5ErkJggg=="> <img src="https://img.shields.io/badge/AWS-deploys-F29100.svg?logo=amazon"> |
5+ |------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
6+ | __Services__ | Amazon S3, Amazon Lambda, Amazon DynamoDB |
7+ | __Integrations__ | AWS SDK, Terraform, AWS CLI |
8+ | __Categories__ | Serverless, Spring Boot, S3 Trigger |
9+ | __Level__ | Intermediate |
10+
11+
12+ ## Introduction
13+
14+ This application was created for demonstration purposes to highlight the ease of switching from
15+ using actual AWS dependencies to having them emulated on LocalStack for your * developer environment* .
16+ Of course this comes with other advantages, but the first focus point is making the transition.
17+
18+ ## Architecture Overview
19+
20+ ![ Diagram] ( app_diagram.png )
21+
22+ ## Prerequisites
623
724- Maven 3.8.5 & Java 17
825- AWS free tier account
926- Docker - for running LocalStack
1027- Terraform (+ Python pip for tflocal) for creating AWS & LocalStack resources
1128- npm - for running the frontend app
1229
13- ## Purpose
14-
15- This application was conceived for demonstration purposes to highlight the ease of switching from
16- using actual AWS dependencies to having them emulated on LocalStack for your * developer environment*
17- .
18- Of course this comes with other advantages, but the first focus point is making the transition.
19-
20- ## What it does
30+ #### What it does
2131
2232* shipment-list-demo* is a Spring Boot application dealing with CRUD operations an employee can
2333execute
@@ -30,11 +40,8 @@ The AWS services involved are:
3040- DynamoDB for the entities
3141- Lambda function that will validate the pictures.
3242
33- ## How it works
3443
35- ![ Diagram] ( app_diagram.png )
36-
37- ## How we will be using it
44+ #### How we will be using it
3845
3946We’ll be walking through a few scenarios using the application, and we expect it to maintain the
4047behavior in both production and development environments. This behaviour can be "scientifically"
@@ -46,9 +53,9 @@ beans to different profiles, such as dev, test, and prod. Of course, these beans
4653behave in each environment, so they’ll get that information from their designated configuration
4754files, ` application-prod.yml ` , and ` application-dev.yml ` .
4855
49- ## Running it
56+ ## Instructions
5057
51- ## Production simulation
58+ ## Production simulation (Running on AWS)
5259
5360Now, we don’t have a real production environment because that’s not the point here, but most likely,
5461an application like this runs on a container orchestration platform, and all the necessary configs
@@ -103,8 +110,6 @@ sample data, and the Lambda function that will help with picture validation.
103110
104111### Running the GUI
105112
106- ### Running the GUI
107-
108113Now ` cd ` into ` src/main/shipment-list-frontend ` and run ` npm install ` and ` npm start ` .
109114This will spin up the React app that can be accessed on ` localhost:3000 ` .
110115
@@ -140,7 +145,7 @@ Current available actions using the GUI:
140145Files that are not pictures will be deleted
141146and the shipment picture will be replaced with a generic icon, because we don't want any trouble.
142147
143- ## Developer environment
148+ ## Developer environment (Running on LocalStack
144149
145150
146151To switch to using LocalStack instead of AWS services just run ` docker compose up ` in the root
0 commit comments