STATUS: Work-in-progress, ETA re:Invent 2019
Airline Booking is a complete web application that provides Flight Search, Flight Payment, Flight Booking, Flight Preferences and Loyalty points including end-to-end testing, GraphQL and CI/CD. This web application is the theme of Build on Serverless Season 2 on AWS Twitch running from April 24th until August 7th.
- AWS Account
- Python 3.7 or greater
- Node 8.10 or greater
- Amplify CLI 1.12.0 or greater
- SAM CLI
- Docker
- Stripe Account
- Take note of your testing
Secret Key
located in the Stripe Dashboard
- Take note of your testing
These are the deployment steps until the full implementation is complete.:
- Fork this project and clone to your local laptop/cloud IDE
- Locally, within your fork, run
amplify init
- Choose to create a new environment (i.e. dev)
- Verify that you now have at least
Auth
andApi
categories by runningamplify status
- Deploy amplify managed infrastructure by running
amplify push
- Once complete, open AWS Amplify Console and select
Deploy
if this is your first time using it - Click on
Connect app
, selectGitHub
, choose your Fork repo and select the branchdevelop
- Under "Existing Amplify backend detected", select your new environment created in Step 2
- Choose an existing Amplify Console or create a new one
- Lastly, expand Environment Variables, and add
STRIPE_SECRET_KEY
andSTRIPE_PUBLIC_KEY
and its value, then conclude the installation
NOTE: This will no longer be necessary once ETL is merged to
develop
branch
Firstly, we need a valid Cognito User that you can create by signing up within your new deployed front-end - Steps below will guide you to manually add your first flight into Catalog:
- Within Amplify Console, select your App, use the URL created to access the Front-end and select Sign Up
- Once you confirm your user, take note of the value
aws_user_pools_web_client_id
insidesrc/frontend/aws-exports.js
- Go to the AWS AppSync Console, and select the
Serverless Airline API
- Go to
Queries
on the left menu, and selectLogin with User Pools
- Within
ClientId
use the value you took note inStep 2
, and use the credentials of your newly created Cognito user - Within your project, copy any of the
createFlight
mutations provided insample-queries-mutations.gql
- Open up the front-end, and search for a flight from
LGW
toMAD
for December 2nd, 2019
Q: Will the README be updated with more info?
Yes! We'll make incremental changes as the series progress.
Q: When will the full code be available?
ETA is for re:Invent 2019. We've decided to spend more time polishing utility libraries, and bake more best practices. Expectation to call it complete will be when the following is fully implemented:
- Full suite of tests
- Migrate to Quasar 1.0 (now GA)
- Python and JS utility library for tracing, structured logging and async custom metrics
- Detailed README for each folder
- ETL to hydrate flights
- Major performance optimizations merged
- Performance Load test scenarios
Q: Will episodes be recorded?
Yes! You can find them in the [Landing Page](Build on Serverless Season 2 on AWS Twitch running from April 24th until August 7th or as a Twitch Collection
Q: What are you using for the front-end?
Q: What is the high level infra architecture?
This sample code is made available under the MIT-0 license. See the LICENSE file.