AWS Serverless Airline Booking
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.
Table of Contents
- AWS Account
- Python 3.7 or greater
- Node 8.10 or greater
- Amplify CLI 1.12.0 or greater
- SAM CLI
- Stripe Account
- Take note of your testing
Secret Keylocated 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
- Choose to create a new environment (i.e. dev)
- Verify that you now have at least
Apicategories by running
- Deploy amplify managed infrastructure by running
- Once complete, open AWS Amplify Console and select
Deployif this is your first time using it
- Click on
Connect app, select
GitHub, choose your Fork repo and select the branch
- 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_KEYand its value, then conclude the installation
Adding your first flight
NOTE: This will no longer be necessary once ETL is merged to
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
- Go to the AWS AppSync Console, and select the
Serverless Airline API
- Go to
Querieson the left menu, and select
Login with User Pools
ClientIduse the value you took note in
Step 2, and use the credentials of your newly created Cognito user
- Within your project, copy any of the
createFlightmutations provided in
- Open up the front-end, and search for a flight from
MADfor 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.