Skip to content

jasmeanfernando/CloudCruiser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

☁️ CloudCruiser

CS336: Final Project

Welcome aboard CloudCruiser, where your journey begins with a click and ends with a smile! With CloudCruiser, booking your dream flight is as easy as catching a cloud. Sit back and let your adventures take flight!

This system has three portals:

  • 🪂 Customer: Passengers who use the system to make flight reservations.
  • Customer Representative: Agents who provide customer-related services.
  • 🚀 Admin: CloudCruiser employees who oversee the system.

Every airline company owns several aircrafts and is associated with several airports from where it operates.

Each airline has a two-letter ID from which it can be uniquely identified.

EXAMPLE: The ID for American Airlines is 'AA', and the ID for United Airlines is 'UA'.

Similarly, each airport has a three-letter ID.

EXAMPLE: The ID for John F. Kennedy Airport is 'JFK'.

A flight is operated by an airline and a specific aircraft that has a specific number of seats and operates on a given set of days of the week (such as every Monday and Wednesday). Flights can either be domestic or international. For every flight, it must be recorded its flight number (unique only within that airline), the departure and arrival airports, and the departure and arrival time.

When accessing your online reservation system, customers should be able to search for specific flights by providing information about the departure and arrival airport and the date they wish to fly. They should also be able to search for one-way or round-trip flights, and they should be able to set if they are flexible about flight dates (+/- 3 days).

Customers should then be able to make flight reservations for the interested flights. If seats are available on a specific flight, customers can buy the flight ticket and see all the necessary information. If no seats are available on a specific flight, customers should be able to get on the flight's waiting list.

A flight ticket has a unique number and is for just a single customer. Each ticket is associated with a sequence of flights. Each ticket must include all attributes of a customer, including: first and last name of the customer, ID number, total fare, and date and time when the ticket was purchased.

If the ticket class is economy, the customer should not be able to change/cancel their ticket unless a fee is paid.

If the ticket class is business or first, the customer can change/cancel their ticket for no fee.

A customer will be associated with one account and may partake in any number of flight transactions. Customers have to register in the system and they have to be logged in to make a reservation. An account will hold the reservation portfolio indicating flight history (past flights and upcoming flights).

✈️ CloudCruiser Functions

Customers

  1. Search about the following types of flights:
    • One-way on a specific date.
    • Round-trip on specific dates.
    • One-way or round-trip on flexible dates (+/- 3 days).
  2. Browse resulting flights.
  3. Filter flights by different criteria (price, number of stops, airline, take-off times, landing times).
  4. Sort flights by different criteria (price, take-off time, landing time, duration of flight).
  5. Make flight reservations.
    • If the flight is full (no remaining seats), enter the waiting list.
  6. Cancel flight reservations (if the ticket is business or first class).
    • If there are people on the waiting list, they should receive an alert that there is an available seat, and be able to proceed with paying for their ticket and completing the reservation.
  7. View all the past reservations with their details.
  8. View all the upcoming reservations with their details.
  9. Browse and send questions to customer representatives.
  10. Search questions and answers by keywords.

Customer Representatives

  1. Make flight reservations on behalf of customers.
  2. Edit flight reservations for a customer.
  3. Reply to customers' questions.
  4. Add, edit, or delete information for aircraft, airports, and flights.
  5. Retrieve a list of all the passengers who are on the waiting list for a particular flight.

Admins

  1. Add, edit, and delete information for a customer representative or customer.
  2. Produce a listing of reservations by flight number or by customer name.
  3. Produce a summary listing of revenue generated by a particular month, flight, airline, or customer.
  4. Determine which customer and flight generated the most total revenue.

⛰️ System Design

Architectural Diagram

Architecture

Entity-Relationship (ER) Diagram

ER Attributes omitted.

🎥 Demo

Click on the image below to view demo.

Watch Demo

https://youtu.be/KRIqku-Czr8?si=TKfeXZTMyd3NC4YJ