Solution
Shubham answered on
Oct 15 2024
Group_18_final_documentation
CSCI318 | GROUP 18 | FINAL
Project Title
Fly Fast : Airplane ticket booking system
Group Members and contributions
Disha Joshi (7554588) 25%
Aren Dunn (7484343 ) 25%
Cody Edwards (7502710) 25%
Tsungi Kimberly Makore (7444324) 25%
Abstract
The following report describes the development of Fly Fast, a microservice airplane ticket booking system. The system is created to perform seamless management of flights, passengers, payments and more through independent services. These services interest through APIs, creating various components that allow the application to provide extensive functionalities for all users.
This report contains the introduction to pure application, containing
ief information on our objectives, functionalities and business context. Additionally, detailed discussion into the requirements and domain model is explored in this report to ensure a complete understanding into the model. And essentially, the report will demonstrate the design, architecture, implementation and deployment of the application. This paper aims to provide knowledge and insights into the entire project lifetime vividly highlighting the development journey, the challenges faced by us and the solutions to it through using technologies like Spring boot and Apache Kafka and ending with contents of the application’s development.
Link to the GitHub: https:
github.com/KimmyM64/CSCI318-GROUP-TASK-C
(
10
)
Table of Contents
Abstract 0
Table of Contents 2
Introduction 3
Project Objectives 3
Main Functionalities 3
Requirements and Domain Model 4
Use Cases 4
UML Domain Model 7
Design and Architecture 8
Architectural Diagram 8
Layered Architecture of Each Service 8
Design Patterns for Domain Classes 9
Data Ownership Specification 9
Implementation and Deployment 10
Implementation Framework 10
Alignment of Architecture Layers 10
Sample REST Requests and Class Attributes 11
Create Passengers 11
Update Passengers 12
Read Passengers 12
Create Flights 13
Update Flights 13
Read Flights 14
Create Payments 14
Update Payments 15
Read Payments 15
Process Payments 16
Stream Processing in Apache Kafka 16
Application Setup and Execution 16
References 17
Introduction
Fly Fast is a microservice application that strives to provide functionalities of an airplane booking system. The program allows for users to create and manage various aspects of flight bookings, flight information, passenger information and more. The architecture of the program allows for seamless interaction with the data encapsulated in our system, providing a flexible and responsive interface. The application will mainly target the travelers, airline and the agents.
Project Objectives
The main objective for this application is to provide an interface that allows for the user to:
· Create passenger profiles, flight bookings and payments.
· Manage these entities through updates and modifications.
· Delete these records when needed due to refunds or cancellations.
Additionally, the system aims to maintain ease of use, security and efficiency across the entire space.
Main Functionalities
Our system strives to provide three functionalities that meet the project objectives:
1. Passenger Management: create passenger detail, update these details, delete profiles and connect the passenger with the payment system and flight bookings.
2. Flight bookings: book flights, manage these bookings, cancel them if needed and link all other classes to the booking (Jeon, Ali and Lee, 2019).
3. Payment Processing: create payment transactions, with the ability to process and refund these payments securely.
These functionalities align precisely with our previously stated objectives. As previously discussed, the objectives of creating, managing and deleting various classes have been met from these functionalities.
Non-Functional Requirements
Requirements and Domain Model
Use Cases
Name
Create Booking
ID
UC-01
Description
The User selects a flight, inserts the co
elating passenger information and the co
ect payment details.
Actors
Use
Pre-conditions
Flight, Payment and Passenger details exist.
Success State
Booking is created and saved.
Fail State
Booking is not created, due to Flight, Payment or Passenger details not valid
Name
Manage Booking
ID
UC-02
Description
The creator of the booking can adjust any fields within the booking.
Actors
Booking Creato
Pre-conditions
Booking exists.
Success State
Booking is modified and saved.
Fail State
Booking doesn’t exist or fields are invalid.
Name
View Booking
ID
UC-03
Description
The creator of the booking can view the booking details.
Actors
Booking Creato
Pre-conditions
Booking exists.
Success State
Booking information is entered co
ectly and booking is shown.
Fail State
Booking is not shown due to invalid search or invalid booking.
Name
Process Payment
ID
UC-04
Description
System can use the payment information inserted by the Booking Creator to pay any booking fees.
Actors
System and Booking Creato
Pre-conditions
Booking and Payment information exists.
Success State
Booking payment is successfully made.
Fail State
Booking payment failed due to invalid payment details.
Name
Manage Payment
ID
UC-05
Description
The Booking Creator can modify their payment information.
Actors
Booking Creato
Pre-conditions
Booking exists.
Success State
Booking Creator successfully modifies and saves the new payment.
Fail State
Invalid payment information and the payment isn’t saved.
Name
View Payment
ID
UC-06
Description
The creator of the booking can view the payment details.
Actors
Booking Creato
Pre-conditions
Booking exists and payment details exist.
Success State
Booking information is entered co
ectly and payment info is shown.
Fail State
Payment is not shown due to invalid search or invalid booking.
Name
Create Passenge
ID
UC-07
Description
The User inserts the co
ect passenger information and the co
ect co
esponding booking details.
Actors
Use
Pre-conditions
Flight details exist.
Success State
Passenger profile is created and saved.
Fail State
Passenger is not created, due to Flight or Passenger details not valid.
Name
Manage Passenge
ID
UC-08
Description
The Booking Creator can modify their passenger information.
Actors
Booking Creato
Pre-conditions
Passenger Profile exists.
Success State
Booking Creator successfully modifies and saves the new profile.
Fail State
Invalid passenger information and the passenger isn’t saved.
Name
View Passenge
ID
UC-09
Description
The creator of the booking can view the passenger details.
Actors
Booking Creato
Pre-conditions
Passenger exists.
Success State
Booking information is entered co
ectly and Passenger info is shown.
Fail State
Passenger is not shown due to invalid search or invalid booking.
Name
Refund Payment
ID
UC-10
Description
The System Admin can refund payment of flight due to cancellations or other reasoning.
Actors
System Admin, Booking Creato
Pre-conditions
Booking exists and payments have been previously made.
Success State
Successful refund.
Fail State
Invalid details given, refund failed.
Name
Remove Booking
ID
UC-11
Description
The System Admin can remove the booking upon request from the Booking Creator.
Actors
System Admin, Booking Creato
Pre-conditions
Booking exists.
Success State
Successful removal.
Fail State
Invalid details given, removal failed.
Name
Remove Passenge
ID
UC-12
Description
The Booking Creator. can remove the Passenger details.
Actors
Booking Creato
Pre-conditions
Passenger exists.
Success State
Successful removal.
Fail State
Invalid details given, removal failed.
UML Domain Model
Note * The main classes that has been implemented are Passenger, Payment, FlightBooking, PlaneTicket and Flight
Design and Architecture
Architectural Diagram
Layered Architecture of Each Service
Our application has the following services that all interact and control various pieces of data in the system:
· Booking Service
· Flight Service
· Passenger Service
· Payment Service
Within these services are various layers, allowing each layer to operate successfully, these include:
· Client...