Skip to content

Instantly share code, notes, and snippets.

@surendra-wal
Last active March 4, 2019 17:30
Show Gist options
  • Save surendra-wal/c920f0ea19918764545fc371e56bdc5e to your computer and use it in GitHub Desktop.
Save surendra-wal/c920f0ea19918764545fc371e56bdc5e to your computer and use it in GitHub Desktop.
Ruby on Rails Flight booking web application assignment

Flight booking web application

Your client, an airline company, is looking to build an application that can facilitate the bookings of their flights. This application should be able to manage all of their flight bookings and in-flight seat allocations. Admins of this platform should be able to create flights from different origins and destinations with different seat combinations. Users (passengers) should be able to select their seats on the chosen flight upon entering a PNR number, similar to airport kiosks around the country.

Description

  • Admins can create airplanes with different seat configurations(Airbus A380, Boeing 747).
  • Each airplane should have its own seat configuration. A sample seat configuration is given below-
Seat configuration
Category Seats in a row No.of rows
First Class 3 10
Business class 8 20
Economy class 10 50
  • Admins should be able to create flights. Each flight should have an airplane type and the corresponding seat configuration of that particular airplane.
  • Admins can assign different flights from various origins and destinations.
  • Each flight should have PNR numbers that are unique for every seat on that flight. The total number of PNR numbers should be equal to the total number of all the seats on the flight. PNR numbers should be system generated as an 8 digit alpha-numeric code.
  • First, Business and Economy will have different classes of PNR numbers.
  • The base price of each seat is configured in the seat configuration
  • End users (Passengers), must be able to visually see a seat map of their flight by entering a PNR number and then be able to select an available seat in their class accordingly.
  • A passenger with an Economy Class PNR number should only be able to select Economy Class seats.
  • Incase they want to upgrade their seat, based on availability and by accepting a higher fare, their PNR details must change.

What's required!

  • A working Heroku link of the deployed application.
  • The Github code repository where the code is hosted.
  • An admin username/password combination to test the application with.
  • 3 PNR numbers belonging to First, Business and Economy Class to test seat selection with.
  • The application must be built on Ruby on Rails.

Bonus points!

  • Adding tests
  • Deployment to Heroku is done via travis CI and having integrated automated tests.
  • Abstraction, testability and modularization in your codebase make us smile!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment