Business platform topic: Flight booking system
Architecture design
Presentation layer
Web/ mobile app
User Interface (UI)
Business layer
Booking Flight User
management management management
Payment Notification
processing service
Integration layer
Third party API integration
Database Layer
Flight booking system DB
Infrastructure Layer
Web App Database Security
server server server service
Database design (E-R diagram)
Table airlines { Table passengers {
AirlineID int(10) [primary key] PassengerID int(20) [primary key]
AirlineName varchar(50) FirstName varchar(50)
AirlineContactNum int(30) LastName varchar(50)
} DateOfBirth time
Email varchar(50)
Table flights { PhoneNum int(50)
FlightID int(10) [primary key] PassportNum varchar(50)
AirlineID int(10) }
DepartureDateTime timestamp
ArrivalDateTime timestamp Table bookings{
DepartureAirport varchar(50) BookingID int(30) [primary key]
ArrivalAirport varchar(50) PassengerID int(20)
FlightDuration varchar(50) FlightID int(10)
FlightStatus varchar(50) BookingDate date
} BookingStatus varchar(50)
PaymentID int(50)
Table seats { }
SeatID int(10) [primary key]
FlightID int(10) Table payment {
SeatNum varchar(10) PaymentID int(50) [primary key]
SeatClass varchar(10) BookingID int(30)
SeatStatus bool PaymentDate date
} PaymentMethod varchar(50)
Amount double
Table airport { }
AirportID int(10) [primary key]
AirportName varchar(50)
City varchar(50)
Country varchar(50)
}
Ref: flights.AirlineID > airlines.AirlineID
Ref: flights.DepartureAirport - airport.AirportID
Ref: flights.ArrivalAirport - airport.AirportID
Ref: bookings.PassengerID > passengers.PassengerID
Ref: flights.FlightID - bookings.FlightID
Ref: payment.PaymentID - bookings.PaymentID
REf: seats.FlightID > flights.FlightID
API design documents
Methods Endpoints Descriptions
GET api/flights Lists of flights
GET api/flights/{FlightID} View a flight
POST api/bookings Make a booking for the selected flight
PUT api/bookings/{BookingID}/seat Select a seat for an existing booking
POST api/payments Make a payment for the booking