A flight ticket booking and management application
designed and built as the course project for Database Systems Laboratory, Spring 2022 at IIT Bhubaneswar
Client
Server
Database
Customer
- View flights between a source and destination for a given date and a window around it
- Reserve seat(s) each with a unique id and corresponding passenger details using a seat map for the chosen flight
- A ticket will be generated after payment of the fare which is calculated dynamically based on the travel distance, seat preference, profession of the customer and time gap between booking date and departure date
- Customers can view tickets categorized into two categories namely, Upcoming Journeys and Archive
- Download tickets as dynamically generated PDFs Cancel a ticket and receive appropriate refund based on the time gap between cancellation and departure date
- View and edit their personal details from their profiles
Admin
- Admins have additional permissions to view the enterprise data which includes details about flight routes, their weekly schedules
Super-Admin
- Super-Admins have extra privileges that allow them to edit (and read) the enterprise data
- Can delay or cancel a flight for a certain date
- Can add new flight routes and schedules along with extending the lease date for a certain flight
Additional
- As the airline is multinational, the issues that arise due to difference in time zones are taken care of using various built-in and custom functions
- Every change in the database goes through a rigorous check in frontend, backend and the database itself to ensure that the records are error free
- Ticket fares are calculated dynamically based on travel distance, seat preference, profession of the customer and time gap between booking date and departure date
- A record of all flights scheduled in the upcoming 56 days is stored and updated regularly
- A seat can be booked again after cancellation by the current holder
To run this project, you will need to add the following environment variables to your .env file
PORT
NODE_ENV
MYSQL_USER
MYSQL_HOST
MYSQL_PASSWORD
MYSQL_DATABASE
JWT_COOKIE_EXPIRES_IN
JWT_SECRET
JWT_EXPIRES_IN
This project uses npm
as package manager
Clone the project
git clone https://github.com/anand-2020/airline-booking-management-system
Go to the project directory
cd airline-booking-management-system
Install server dependencies
npm install
Install client dependencies
npm run install-client
Start the server
npm run dev
Start the client
cd client && npm start