The following Project is a complete implementation of a Flight Booking Website using MERN stack that simulate a thorough experience of reserving a flight.
The website is designed to recreate a flight booking experience where the user can go from selecting a flight they want to reserve to choosing the seats they want from the available seats that are shown to them to confirming their flight and paying for them with their debit/credit card.
If the user is logged in as an administator then they have the ability to create/edit/delete any flight they want to.
The user also has the ability to sign up in order to have their data stored in order to book any flight the want if they are visiting the website as a guest.
The user can also check their reserved flight as well as change any criteria they do not like form changing the seats that they chose to changing the whole flight from beginning to end, also they can cancel their flight simply and get their money back.
The reason behind this project is creating a full working flightbooking website with every feature needed to ensure a satisfying experience for all the users with minimal effort.
The code fully works and does not contain any bugs/errors.
Back-end installation:
npm install express node mongoose react
npm install nodemailer
npm install bcryptjs
npm install body-parser
npm install jsonwebtoken
npm install cors
npm install config
npm install nodemon
Front-end installation:
cd client
npm install
npm install axios
npm install react
npm install react-bootstrap
npm install react-confirm-alert
npm install react-confirm-box
npm install react-dom
npm install react-icons
npm install react-responsive-modal
npm install react-router-dom
npm install react-scripts
npm install react-stripe-checkout
npm install styled-components
npm install utils
npm install web-vitals
npm install @emotion/react
npm install @emotion/styled
npm install @mui/icons-material
npm install @mui/material
npm install @mui/x-data-grid
npm install @stripe/react-stripe-js
npm install @stripe/stripe-js
npm install @testing-library/jest-dom
npm install @testing-library/react
npm install @testing-library/user-event
To be able to run the project the following codes will be run on two terminals:
Terminal 1
npm run app
Terminal 2
cd client
npm start
Also a database connection need to be made before using the website and this can be achieved in the following steps:
1-Create a mongoose atlas account and establish a connection
2-Enter the following line in app.js file to connect the database using the code in the link below: https://www.mongodb.com/blog/post/quick-start-nodejs-mongodb-how-to-get-connected-to-your-database
3-Change username, password and your-cluster-url to your info. where you will find them in your connection.
Every aspect of the project could be tested like for example creating a flight and reserving it, cancelling a reservation and getting refunded, deleting/editing a flight, changing seats or flights to see the reflection of these things on the database.
For anyone who would like to contribute in the development of the project just clone the repository using the link that you can find in 'code' button or use the following link:
git clone https://github.com/advanced-computer-lab/AclProject.git
German University in Cairo
Name | Mohamed Mahmoud | Noureldin Hesham | Youssef Magdy | Ahmed Hussein | Omar Alhadi |
---|---|---|---|---|---|
ID | 46-14531 | 46-12946 | 46-0929 | 46-0726 | 46-14114 |
MIT © ACLTeam