aws-samples / aws-serverless-airline-booking

Airline Booking is a sample web application that provides Flight Search, Flight Payment, Flight Booking and Loyalty points including end-to-end testing, GraphQL and CI/CD. This web application was the theme of Build on Serverless Season 2 on AWS Twitch running from April 24th until end of August in 2019.
MIT No Attribution
2.21k stars 1.3k forks source link
airline-booking aws aws-lambda aws-lambda-node aws-lambda-python graphql lambda lambda-functions python sam serverless tracing typescript

AWS Serverless Airline Booking

Serverless Airline Booking is a complete web application that provides Flight Search, Payment, Booking and Loyalty points including end-to-end testing, GraphQL and CI/CD. This web application was the theme of Build on Serverless Season 2 on AWS Twitch running from April 24th until August 7th - Check out Twitch branch for the list of 14 episodes.

For more up-to-date information on what's being implemented, take a look at our current Boards.

Note

This project is no longer being worked on. This branch repo only serves to give inspiration to others as a point in time reference, you can see the former code by viewing the archive branch

Serverless Airline Booking sample

Deployment

To get started with the Serverless Airline application, you can deploy into your AWS Account by following our Get Started instructions

Stack

Summary of what the stack looks like now including a picture with the core tech:

Core stack

Back-end

Back-end services that makes up the Serverless Airline functionalities as of now:

Service Language Description
Catalog Apache VTL Provides Flight search. CRUD operations including custom indexes are auto-generated by Amplify
Booking Python and Apache VTL Provides new and list Bookings. CRUD operations including custom indexes are auto-generated by Amplify. Business workflow is implemented in Python.
Payment YAML and Python Provides payment authorization, collection and refund. Bulk of Payment integration with Stripe is done via a Serverless Application Repository App. Payment collection and refund operations within Booking business workflow are in Python
Loyalty Typescript Provides Loyalty points for customers including tiers. Fetching and ingesting Loyalty points are implemented in Typescript.

Front-end

See more information about our Front-end, components, routing and convention

High level infrastructure architecture

Serverless Airline Architecture

License Summary

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