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.
https://zealous-williams-cc4181.netlify.app/
- Maryam Ayman ElOraby ✨ ( Scrum Master )
- Hadeer El Hussein ✨
- Mariam Tamer ✨
- Rawan Reda Fouda ✨
- Rowan Amgad ✨
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).
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.
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
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
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
- Backend:
- app.js runs on port
3000
- authServer.js runs on port
4000
- app.js runs on port
- Frontend:
- App.js runs on port
8000
- App.js runs on port
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.
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
- 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)
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
- Our great project manager Ahmed Alaa for giving all the help he could and for supporting us throughout the sprints :)
- Dr. Angela Yu's Udemy Course
- Ryan Dhungel's Udemy Course