Skip to content

Our flight reservation system is here to assist you with all your flight arrangements. So, whether you’re booking a flight, making a change to your booking, or cancelling altogether, you can always rely on Kite Air to help you save money on your next trip.

Notifications You must be signed in to change notification settings

mareloraby/Kite-Air

 
 

Repository files navigation

Our flight reservation system is here to assist you with all your flight arrangements. So, whether you’re booking a flight, making a change to your booking, or cancelling altogether, you can always rely on Kite Air to help you save money on your next trip.

Netlify Status

https://zealous-williams-cc4181.netlify.app/

Collaborators:

Motivation

This project’s goal was to implement an airline reservation system using the Agile Methodology split into three sprints, following the assigned System Requirements and implementing it using the MERN Stack (MongoDB, Express.js, React and Node.js).

Features

Screen2

Our web application offers a smooth process of reserving a flight by providing a user experience that fosters satisfiability, efficiency, learnability and visibility. Some examples of this is seen in choosing seats where the user gets to view all seats on the flight and choose seats accordingly. Furthermore, navigation is always reversible; the app allows the users to go back and change a previously made choice while making a reservation. We also allow for immediate feedback through sending emails right after a reservation is confirmed or canceled and throughout the website, the user is sent a confirmation message upon any action taken.

Screen1

Main website features for a guest User:

  • Search for a desired flight based on number of passengers, departure and arrival airports, departure and arrival dates, and cabin class and gets all available options.
  • Register
  • Log-in

Screen11

Screen10

Main website features for an existing User:

  • Search for a desired flight based on number of passengers, departure and arrival airports, departure and arrival dates, and cabin class and gets all available options.
  • Make a reservation by selecting the desired seats on the choosen flight
  • View a summary of their selected flight and seats
  • Online payment using a visa/CreditCard
  • View all previously made reservations.
  • Cancel a previously made reservation.
  • Request an email to be sent with a certain reservation information
  • Update the seats of a previously made reservation.
  • Access profile page and edit personal information and password.
  • Log-out

Screen3

Screen4

Screen5

First

Screen7

Screen8

Main website features for the Admin:

  • Search for a flight
  • Add a flight to the system.
  • Update an already existing flight information.
  • Access profile page and edit personal information and password.
  • Log-in
  • Log-out

Screen12

How to Run

Port Numbers

  • Backend:
    • app.js runs on port 3000
    • authServer.js runs on port 4000
  • Frontend:
    • App.js runs on port 8000

Which files to run

We are working on deploying the app on herokuapp and Netlify. In the meantime, you can follow these steps to run the app.

Open 3 terminals:

a. In the first terminal run cd src and then node app.js

b. In the second terminal run cd src then authServer.js

c. In the third terminal run cd src/client/src then npm start

Notes: a & b run the backend, while c runs the frontend. Anything inside the client directory is related to the frontend.

Libraries

Initially, run npm init and npm i in the terminal to download all node modules and install some basic libraries.

  • express
  • cors
  • Body-parser
  • jsonwebtoken
  • stripe
  • bcrypt
  • axios
  • mongoose
  • material ui components
    • @mui/material/
    • @mui/lab
    • @mui/icons-material
    • @mui/utils
  • antd components
    • antd
    • antd/dist/antd.css
    • @ant-design/icons
  • react-router-dom
  • react-scripts
  • react-country-region-selector
  • react-seat-picker
  • react-stripe-checkout
  • react-toastify
  • nodemailer
  • jquery

To test the different functionalities, you can:

  • try signing up, signing in, opening your profile.
  • try searching for a flight going from Cairo (code: CAI) to Canada (code: YYZ) with departure date 10/01/2022 and arrival date 22/01/2022, choose a departure and return flight. (Please email us at winter21team@gmail.com or maryam.eloraby@gmail.com to send you a .env file required to test further functionalities)

Database

To provide database access for Kite Air, we used mongoose (a MongoDB object modeling tool designed to work in an asynchronous environment). We have 3 models:

  • User
  • Flight
  • Reservation

Credits

About

Our flight reservation system is here to assist you with all your flight arrangements. So, whether you’re booking a flight, making a change to your booking, or cancelling altogether, you can always rely on Kite Air to help you save money on your next trip.

Topics

Resources

Stars

Watchers

Forks

Languages

  • JavaScript 99.8%
  • Other 0.2%