Giter Site home page Giter Site logo

airlineticketbooking's Introduction

Airline Ticket Booking Backend System

Objective

  • We need to build a backend feature for an airline company. our end-user is going to be someone who wants to book flights and query about flights, so we need a robust system to actually help them give the best experience possible.

  • This Doc is going to solely focus on Backend Part. We want to prepare the whole backend keeping in the fact in mind that code-base should be easily maintainable as much as possible.

Requirements

  • A user should be able to search for flights from one place to another.
    • User should be able to mention the src and dest details.
    • User should be able to select the date of journey. {V2 -> multicity and round trip implementation}
    • User should be able to select the class of the flights. (Non-mandatory, have some default value)
    • User should be able to select the number of seats. (Non-mandatory, have some default value)
    • List down the flights based on the above data.
    • The best available flights should be shown based on price and least journey time.
    • Need to support pagination so that we can list chunk of flights at one point of time.
    • Filter of flights should be supported based on Price, Departure Time, Arrival time, Journey time, etc. {V2 -> some more filters}
  • A user should be able to book a flight considering that user is reisterred on the platform.
    • Excess luggage addition feature should be supported.
  • Tracking of the flight prices should be possible; user should be notified for any price drops or any delays. {V2 -> some more notification service}
  • For booking, the user has to make a payment. (dummy)
  • User should be able to list their previous and upcoming flights.
  • User should be able to download their boarding pass if they have done Web Check-in.
  • Web Check-in should be supported.
    • {V2 -> Seat Selection feature}
  • Notification via email for Web check-in.
  • Reqview system for users iff they have booked the flight.
    • Star based review system
    • Listing of flights should involve review display.
  • User should be able to authenticate to our system using email and password.
  • Cancellation of a flight should be supported and cancellation returns (dummy).
  • While making a booking, a persone can reserve more than one seat with one login id.

Non-Functional Requirements

  • We can expect that we are going to have more number of flight searches than flight bookings.
  • The system needs to be accurate in terms of booking.(No Over booking)
  • Expect that we will be having approx 1,00,000 total users, 5,00,000 bookings might happen in one quarter.
  • So in one day we can expect 10,000 bookings.
  • System should be capable of scaling up to atleast 3x the current estimated traffic.
  • The system should handle realtime updates to flight prices, before user makes the final booking.
  • Concurrency should be handled, using RDBMS should be the good solution.

Capacity Estimations

  • Storage Estimations:
    • For upcoming 5 years, 80,00,000 bookings, 2,00,000 users.
    • Considering all the users records and booking records take 10 MB of data, then overall 10 TB of memory should be fine for out initial pilot run.
  • Traffic estimates: If we consider 30:1 as the search:booking ratio, then max we can expect 1,50,000 search queries a day. (2 queries/sec)

Authentication Service

URL: https://github.com/Aditya16828/Authentication-Service-AirlineTicketBooking.git

Booking Service

URL: https://github.com/Aditya16828/BookingService-AirlineTicketBooking.git

Email Service

URL: https://github.com/Aditya16828/EmailService-AirlineTicketBooking

Flights Service

URL: https://github.com/Aditya16828/FlightsService-AirlineTicketBooking

airlineticketbooking's People

Contributors

aditya16828 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.