Skip to content

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 end of July.

License

Notifications You must be signed in to change notification settings

flochaz/aws-serverless-airline-booking

 
 

Repository files navigation

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.

Serverless Airline Booking sample

Table of Contents

Deploying

Requirements

Instructions

These are the deployment steps until the full implementation is complete.:

  1. Fork this project and clone to your local laptop/cloud IDE
  2. Locally, within your fork, run amplify init
  3. Choose to create a new environment (i.e. dev)
  4. Verify that you now have at least Auth and Api categories by running amplify status
  5. Deploy amplify managed infrastructure by running amplify push
  6. Once complete, open AWS Amplify Console and select Deploy if this is your first time using it
  7. Click on Connect app, select GitHub, choose your Fork repo and select the branch develop
  8. Under "Existing Amplify backend detected", select your new environment created in Step 2
  9. Choose an existing Amplify Console or create a new one
  10. Lastly, expand Environment Variables, and add STRIPE_SECRET_KEY and STRIPE_PUBLIC_KEY and its value, then conclude the installation

Adding your first flight

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:

  1. Within Amplify Console, select your App, use the URL created to access the Front-end and select Sign Up
  2. Once you confirm your user, take note of the value aws_user_pools_web_client_id inside src/frontend/aws-exports.js
  3. Go to the AWS AppSync Console, and select the Serverless Airline API
  4. Go to Queries on the left menu, and select Login with User Pools
  5. Within ClientId use the value you took note in Step 2, and use the credentials of your newly created Cognito user
  6. Within your project, copy any of the createFlight mutations provided in sample-queries-mutations.gql
  7. Open up the front-end, and search for a flight from LGW to MAD for December 2nd, 2019

FAQ

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?

Front-end tech stack

Q: What is the high level infra architecture?

Serverless Airline Architecture

License Summary

This sample code is made available under the MIT-0 license. See the LICENSE file.

About

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 end of July.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 37.6%
  • Vue 25.6%
  • JavaScript 24.1%
  • TypeScript 8.7%
  • Makefile 3.4%
  • CSS 0.4%
  • HTML 0.2%