A Serverless AWS app with step function approval workflow. It utilizes a fully serverless architecture:
- Cognito User Pools for authentication, registration, and confirmation
- Step Function for workflow approval
- AWS ML for prediction
- API Gateway for REST API authenticated with Cognito User Pools
- Lambda and DynamoDB as a Backend
- CloudFormation and SAM for Infrastructure management
AWS Architecture
Amazon Machine Learning is used to predict the appropriate quote for the user according to previously approved quotes. The CSV file containing the previously approved quotes is stored in an Amazon S3 bucket which is loaded into Amazon Machine Learning. Then, Amazon Machine Learning performs the Real-Time Bayesian prediction algorithm using the previously approved quotes and displays the result of the prediction to the screen.
AWS ML Diagram
CICD Diagram
- Online Quote submission capability
- Quote approval workflow in cloud
- Email approval
- Alexa Support
- Price prediction using ML
- Reporting Dashboard using AWS QuickSight
- SSO – Amazon Cognito
- CICD
You need to install following on your computer or in cloud.
git clone
cd client
npm install && bower install
Set up AWS infra
ember serve
- Visit your app at http://localhost:4200.
Make use of the many generators for code, try ember help generate
for more details
ember test
ember test --server
ember build
(development)ember build --environment production
(production)
Build the ember web app and copy /AWSProjects/aws-serverless-ember/client/dist files to S3, note you'll need the "WebsiteBucket" output value from the above hosting cloudformation stack you generated. If you need it again, just run aws cloudformation describe-stacks --stack-name ember-serverless-hosting
*if you used a different name, substitute that in-place of "ember-serverless-hosting", then note the OutputValue
for "WebsiteBucket" and use that here:
cd client
ember build
aws s3 sync dist/ s3://<<your-ember-website-bucket>>/ -acl public-read
Once synced you can visit the URL for your S3 bucket using the OutputValue
from the hosting template for WebsiteURL
.
Note: For same folder structure in S3 you can drag folder to s3.
Thank You
Manoj Kumar