Tải bản đầy đủ (.pdf) (132 trang)

Khóa luận develop transport management system and integrate document lookup regulations in logistics system administration

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.23 MB, 132 trang )

VIETNAM NATIONAL UNIVERSITY, HO CHI MINH CITY

UNIVERSITY OF INFORMATION TECHNOLOGY
FACULTY OF SOFTWARE ENGINEERING

LE HOANG THINH
VO DUC TRUNG HIEU

GRADUATION THESIS

DEVELOP TRANSPORT MANAGEMENT SYSTEM
AND INTEGRATE DOCUMENT LOOKUP
REGULATIONS IN LOGISTICS SYSTEM
ADMINISTRATION

ENGINEER IN SOFTWARE ENGINEERING

HO CHI MINH CITY , 2023


VIETNAM NATIONAL UNIVERSITY HO CHI MINH CITY

UNIVERSITY OF INFORMATION TECHNOLOGY
FACULTY OF SOFTWARE ENGINEERING

LE HOANG THINH - 19520285
VO DUC TRUNG HIEU - 19521515

GRADUATION THESIS

DEVELOP TRANSPORT MANAGEMENT SYSTEM


AND INTEGRATE DOCUMENT LOOKUP
REGULATIONS IN LOGISTICS SYSTEM
ADMINISTRATION

ENGINEER OF SOFTWARE ENGINEERING

INSTRUCTORS
NGUYEN TRINH DONG

HO CHI MINH CITY , 2023


GRADUATION THESIS MARKING COMMITTEE INFORMATION

Graduation thesis judging committee, established under Decision No. ............
day....................... of the Rector of the University of Information Technology.


ACKNOWLEDGMENTS
We would like to express our sincere thanks to the lecturers of the University of
Information Technology, especially the teachers of the Faculty of Software
Engineering for facilitating and helping us complete this thesis.
First, we would like to sincerely thank the TS instructor. Nguyen Trinh Dong
for his dedicated help, orientation of thinking, direction of projects as well as
scientific way of working. These are very valuable suggestions not only in the process
of implementing this subject project but also as a luggage for us to continue in the
learning process and career development path in the future.
We would like to sincerely thank the reviewing lecturer for taking the time to
support feedback and criticism so that we can draw valuable and better experiences
in building and developing applications as well as in the graduation thesis.

At the same time, we would like to express our sincere thanks to the Committee
of the Graduation Thesis Defense for providing valuable questions and suggestions
that assisted us in finding the problem and assisting in the development of a better
project.
In the process of making this project, we are not immune to errors, we look
forward to receiving the guidance and suggestions of teachers to make the project
more complete.
Thank you very much. I wish you all the best to always accompany you.
Ho Chi Minh City, 20 June 2023
Student
LE HOANG THINH
VO DUC TRUNG HIEU


TABLE OF CONTENTS

Table of Contents
Chapter 1. GENERAL INTRODUCTION ............................................................... 14
1.1.

Reason to choose the topic .......................................................................... 14

1.2.

Goal ............................................................................................................ 15

1.3.

Scope .......................................................................................................... 15


1.3.1.

Environmental range ....................................................................................................15

1.3.2.

Range of functions ........................................................................................................16

1.4.

Objects of use .............................................................................................. 16

1.5.

Implementation methods ............................................................................ 16

1.6.

Technology platform .................................................................................... 17

1.7.

Expected results........................................................................................... 17

1.8.

Production................................................................................................... 17

1.9.


Development direction of the topic .............................................................. 18

1.10.

Thesis structure ........................................................................................... 18

Chapter 2. BACKGROUND ................................................................................ 20
2.1.

Technology used .......................................................................................... 20

2.1.1.

Programming languages ...............................................................................................20

2.1.2.

Framework ....................................................................................................................23

2.1.3.

Databases ......................................................................................................................25

2.1.4.

Deploy ...........................................................................................................................26

Chapter 3. SYSTEM ANALYSIS AND DESIGN ...................................................... 29
3.1.
3.1.1.


System design .............................................................................................. 29
Use case view ................................................................................................................29


3.1.2.

Detailed use case specification .....................................................................................35

3.1.3.

Process view..................................................................................................................54

3.1.4.

Deployment View .........................................................................................................82

3.1.5.

Implementation view ....................................................................................................83

3.1.6.

Data view ......................................................................................................................87

3.2.

User interface .............................................................................................. 88

3.2.1.


Web Apps for Transportation Managers ......................................................................88

3.2.2.

Android apps for drivers .............................................................................................101

3.2.3.

Web application for tenant managers ........................................................................115

Chapter 4. Multi tenant management system ................................................ 119
4.1.

System analysis.......................................................................................... 125

4.2.

Components and services ........................................................................... 125

4.2.1.

A single tenant infrastructure .....................................................................................125

4.2.2.

Multi-tenant implementation system ........................................................................131


PICTURE BIBLIOGRAPHY

Figure 3-1. Use case diagram on the transportation manager's side ................ 30
Figure 3-2. Use case diagram on the driver's side ........................................... 31
Figure 3-3. Multi tenant system management side diagram ............................ 32
Figure 3-4. Sequential scheme "Login" ........................................................... 54
Figure 3-5. Sequential diagram "View all drivers".......................................... 55
Figure 3-6. Sequential scheme "Create a driver" ............................................. 56
Figure 3-7. Sequential scheme "Search for drivers" ........................................ 58
Figure 3-8. Sequential diagram "Update driver status" ................................... 58
Figure 3-9. Sequential diagram "View all products" ....................................... 59
Figure 3-10. Sequential scheme "Search for products" ................................... 60
Figure 3-11. Sequential scheme "Creation of products".................................. 61
Figure 3-12. Sequential diagram "View all delivery and receiving locations" 62
Figure 3-13. Sequential diagram "Search for delivery and receiving locations"
.................................................................................................................................. 63
Figure 3-14. Sequential diagram "Create delivery and receiving locations" ... 64
Figure 3-15. Sequential diagram "View all routes" ......................................... 65
Figure 3-16. Sequential diagram "Search for routes" ...................................... 66
Figure 3-17. Sequential diagram "Create route" .............................................. 67
Figure 3-18. Sequential diagram "View all transport" .................................... 68
Figure 3-19. Sequential diagram "Search for transport".................................. 69
Figure 3-20. Sequential diagram "Creating a means of transport" .................. 70
Figure 3-21. Sequential diagram "View all transport orders" ......................... 71
Figure 3-22. Sequential diagram "Search for transport orders"....................... 72
Figure 3-23. Sequential diagram "Create transport order" .............................. 73
Figure 3-24. Operation diagram "Login" ......................................................... 74
Figure 3-25. Operation diagram "Create T" .................................................... 75
Figure 3-26. Operation diagram "Search T" .................................................... 76
Figure 3-27. Operation diagram "View all T" ................................................. 77



Figure 3-28. "Select a route for an order" operation diagram ......................... 78
Figure 3-29. Operation diagram "Deliver orders to drivers" ........................... 79
Figure 3-30. Operation diagram "Order confirmation on the driver's side" .... 80
Figure 3-31. Operation diagram "Confirm transport status" ........................... 81
Figure 3-32. Package diagram (Services related to transportation operations)82
Figure 3-33. Android Application Architecture .............................................. 84
Figure 3-34. Spring Boot application architecture .......................................... 86
Figure 3-35. Entity-relationship diagram ........................................................ 87
Figure 3-36. Sign-in screen for transportation managers ................................ 88
Figure 3-37. Home screen (statistics) .............................................................. 89
Figure 3-38. Order list screen .......................................................................... 90
Figure 3-39. Order creation screen (select list of products) ............................ 90
Figure 3-40. Order creation screen (select route) ............................................ 91
Figure 3-41. Order creation screen (add order information) ........................... 91
Figure 3-42. Order detail screen ...................................................................... 92
Figure 3-43. Commodity list screen ................................................................ 93
Figure 3-44. New commodity type creation screen ......................................... 93
Figure 3-45. Commodity display (details) ....................................................... 94
Figure 3-46. Screen of the list of delivery and receiving locations ................. 94
Figure 3-47. Screen to create a new delivery and receiving location .............. 95
Figure 3-48. Delivery and receiving location screen (details) ......................... 96
Figure 3-49. Vehicle listing screen .................................................................. 96
Figure 3-50. Transport creation screen ............................................................ 97
Figure 3-51. Transport Vehicle Monitor (details) ........................................... 98
Figure 3-52. Organization list screen............................................................... 99
Figure 3-53. Organization creation screen....................................................... 99
Figure 3-54. Organization screen (details) .................................................... 100
Figure 3-55. Login Screen ............................................................................. 101
Figure 3-56. Reset password screen .............................................................. 102



Figure 3-57. Vehicle pairing screen............................................................... 103
Figure 3-58. Drawer screen ........................................................................... 104
Figure 3-59. History screen ........................................................................... 105
Figure 3-60. Choose date dialog .................................................................... 106
Figure 3-61. Account setting screen .............................................................. 107
Figure 3-62. Change password screen ........................................................... 108
Figure 3-63. Upcoming job screen ................................................................ 109
Figure 3-64. Next job screen ......................................................................... 110
Figure 3-65. To pick up location screen ........................................................ 111
Figure 3-66. To pick up location (with map) screen ..................................... 112
Figure 3-67. Location warning dialog ........................................................... 113
Figure 3-68. End work screen ........................................................................ 114
Figure 3-69. Login screen (for tenant manager) ............................................ 115
Figure 3-70. tenant list screen ........................................................................ 116
Figure 3-71. New tenant creation screen ....................................................... 116
Figure 3-72. Tenant screen (details) .............................................................. 117


TABLE CATALOGUE
Table 3-1. Functional specification "Login for transport management" ......... 36
Table 3-2. Functional specification "Registration for transport management" 37
Table 3 -3. Functional specification "Manage employees" ............................ 38
Table 3-4. Functional specification "Driver management" ............................. 39
Table 3-5. Functional specification "Management of delivery and receiving
locations" .................................................................................................................. 40
Table 3-6. Functional specification "Manage garages" ................................... 41
Table 3-7. Functional specification "Manage routes" ..................................... 42
Table 3-8. Functional specification "Products management" .......................... 43
Table 3-9. Functional specification "Manage vehicles" .................................. 44

Table 3-10. Functional specification "Transport Order Management" ........... 45
Table 3-11. Functional specification "View transport statistics" .................... 46
Table 3-12. Functional specification "Login for drivers" ................................ 47
Table 3-13. Functional specification "Select orders for drivers"..................... 47
Table 3-14. Functional specification "Change shipping status" ...................... 48
Table 3-15. Functional specification "Confirm vehicle’s status" .................... 49
Table 3-16. Functional specification "View order history" ............................. 49
Table 3-17. Functional specification "Login for tenant management" ............ 50
Table 3-18. Functional specification "View tenant list" .................................. 51
Table 3-19. Functional specification "Create tenant" ...................................... 52
Table 3-20. Functional specification "View tenant information" .................... 52
Table 3-21. Functional specification "Update tenant status" ........................... 53


CATEGORIES OF ACRONYMS

Terminology

Description

OOP

Object Oriented Programing

AWS

Amazon Web Service

GCP


Google Cloud Platform

DDD

Domain Driven Design


THESIS SUMMARY
Freight management is an important area of economic and social development,
playing an important role in connecting localities and bringing products to their
destination. However, we recognize that the current management of freight
transportation is still limited and difficult, making it difficult to ensure the safety and
efficiency of the transportation of products.
The main limitations and difficulties we have noticed include the lack of
coordination between transport management units. Lack of this leads to heterogeneity
in management, which makes it difficult to coordinate and organize transport
activities. We also recognize that lack of accurate information and data is a major
barrier, making planning and decision-making in transportation management difficult
and unreliable.
In addition, we also realize that strict control and supervision during the
transportation of products also face many difficulties. Lack of routine monitoring and
inspection makes it difficult to detect and promptly handle violations, fraud, or
emergency situations during transportation. This contributes to a decrease in the
efficiency and safety of freight transport.
We also recognize that the lack of technology application in transportation
management is an important problem. Information technology and management
software are developing strongly in other fields, but in transportation management,
the application of technology is still limited. This shortage has deprived the
opportunity to optimize the management process, from tracking and monitoring, to
the organization of schedules and route optimization.

In response to these problems, we decided to choose the topic "Development of
Transport Management System" to research and develop a more effective
transportation management system. We want to create an intelligent transportation
organization and management system, including providing accurate information and
data, applying technology to optimize the transportation process, and integrating

12


traffic law lookup tools to help solve difficulties related to traffic law regulation and
compliance. We believe that this system will contribute positively to improving
efficiency and safety in freight management, contributing to promoting economic and
social development.

13


Chapter 1.

GENERAL INTRODUCTION

1.1. Reason to choose the topic
In today's increasingly complex and fiercely competitive business environment,
logistics enterprises face many challenges in terms of transportation management and
compliance with relevant legal regulations. The effective organization and operation
of transport activities is an important factor to ensure the success and competitiveness
of businesses in this industry.
Moreover, in the field of logistics, grasping and complying with regulatory
regulations is a mandatory requirement. However, with the continuous development
of legislation and the constant change in regulations, finding and properly applying

legal documents becomes complicated and time-consuming and laborious.
With these challenges and needs, developing a transport management system
and integrating regulatory document lookup in logistics business management is a
reasonable choice. This helps to provide a comprehensive and efficient solution to
manage transportation operations and at the same time ensure compliance with legal
regulations.
This system will help optimize the transportation management process, from
planning, monitoring, coordination, to evaluating and improving operations. At the
same time, the integration of legal document lookup in the system will help
businesses quickly access and properly apply regulations, minimize legal risks and
ensure compliance with relevant regulations.
Therefore, researching and developing transport management systems and
integrating legal document lookup in logistics enterprise management is a topic of
interest and significance in improving the operational efficiency and competitiveness
of logistics enterprises in today's business environment.

14


1.2. Goal
• Building an effective transportation management system, helping logistics
enterprises optimize the transport management process. The system will
provide tools and functionality for transport planning, tracking and
coordinating orders, and providing reporting and data analysis to evaluate
operational performance. The goal is to improve the organization, accuracy
and responsiveness of businesses in transportation management.
• Develop systems capable of meeting the needs of partners and extenders. The
system will provide an easy-to-use and customizable interface, allowing
logistics businesses, carriers, and other partners to use the same system to
manage transportation information and access regulatory documents. The goal

is to create a collaborative and information-sharing environment in logistics,
which improves interaction and efficiency among stakeholders.
• Integrate the feature of looking up and managing legal documents in the
system. This allows users to quickly access and search regulatory documents
related to logistics activities, such as transportation regulations, cargo safety,
contract management, customs clearance and taxation. The system will
provide detailed information on applicable regulations and guidance, helping
to ensure that businesses comply with the law and manage legal risks
effectively.
• Improve efficiency and accuracy in transportation management and legal
compliance. The system will provide accurate, synchronous and easily
accessible data and information, helping to enhance management decisions
and monitor logistics activities. Automation and computational functions in
the system help improve coordination and interaction between departments
and partners in the supply chain, from ordering, shipping to delivery.
• Create a transportation management system that is flexible and responsive to
changes and fluctuations in logistics operations. The system will have the
ability to adjust and adapt to new requirements, updated legal regulations and
customer needs. This helps logistics businesses remain agile and competitive
in today's multivariate and complex business environment.

1.3. Scope
1.3.1.






Environmental range


Mobile App: Android OS
Web application
Server: Spring Boot, FastAPI, NestJs
Infrastructure: AWS, SES, Terraform
Deployment: Docker

15


1.3.2.















Range of functions

User authentication
Site management, garage.

Manage routes.
Manage products.
Manage vehicles.
Manage transportation orders.
Change and track the transport process.
View your order history.
Confirm the status of the transport before starting the order.
Order management.
Manage payment applications, debts.
Statistics on the number of orders by location, means of transport, route, ...
Manage and decentralize units to use the system's services.
Create new tenant and manage all the running tenants.
1.4. Objects of use

• Driver: Participants in transporting products, using the system to view
information, plan and update delivery status.
• Transportation unit manager: Manage and operate transportation operations,
use the system to manage orders, assign tasks and analyze business statistics
based on visual data.
• Law search service users: Look up legal documents related to logistics, such
as transport and traffic regulations.
• Multi-user system manager: Manage and maintain systems, build
configurations, manage access and maintenance to ensure stable and secure
operation.
1.5. Implementation methods
Before going into the detailed research, the team researched and defined the
detailed objective of the topic in order to create an application that meets the original
plan.
The team that decides on the method of implementing the project will go
through the following steps:


16


• Step 1: Learn and research operations related to the transportation and logistics
industry, and consider existing problems and difficulties to build software that
meets the requirements.
• Step 2: Analyze the functions of the software.
• Step 3: Software specification and analysis.
• Step 4: Design the database and software architecture.
• Step 5: Design the interface for the application using technologies that support
prototyping construction.
• Step 6: Deploy the software.
• Step 7: Check and fix software errors.
• Step 8: Supplement and update the graduation thesis course materials.

1.6. Technology platform







Web: ReactJs (JavaScript).
Mobile application: Android (Kotlin).
Server: Spring Boot, NestJs, FastAPI.
Database: MongoDB, PostgreSQL.
Infrastructure: Terraform.
Containerization: Docker.


1.7. Expected results
The application can accommodate:






Functional requirements: meet the set requirements.
Non-functional: nice interface, easy to use.
Security: ensuring the safety of personal information.
Performance: good load capacity.
Upgrades: easy to upgrade and maintain in the future.

1.8. Production
Android application for Driver: Publish on Google Play Store.
Link: />
17


1.9. Development direction of the topic
If the work progress is as expected, in the future the team will expand the
following features:
• Integrate the system to suggest and optimize transport routes.
• Leverage the system.
• Integrate CRM system for both tenant service and tenancy service.

1.10.


Thesis structure

This graduation thesis consists of 6 chapters, presenting aspects of the topic,
background knowledge, system design analysis, experimental process and evaluation
of forecast results, finally conclusions and development directions. In order to
summarize the contents of the thesis course to help readers easily grasp and
understand the issues we want to convey, this section will give the contents presented
in the graduation thesis course according to the chapters and an overview of the
content of that chapter.
Chapter 1: General Introduction
This chapter will include the reasons for choosing the topic, setting research
objectives for users, setting the scope of the topic, and presenting the expected results
and directions for developing and expanding the topic in the future.
Chapter 2: Foundational knowledge
This chapter will outline the fundamental knowledge used in the thesis such as
technologies and libraries applied to applications.
Chapter 3: System Analysis and Design
This chapter will include detailed descriptions of the system from architecture
to usecase components, sequential diagrams or operation diagrams used to form the
application. There are also UX/UI or database designs that are also outlined in this
section.

18


Chapter 4: Multi tenant management system
This chapter explains in detail how the multi-tenant system works, along with
information on how to deploy, and how the web tenancy admin works.

19



Chapter 2.

BACKGROUND

2.1. Technology used
2.1.1.

Programming languages

2.1.1.1.

Java

Java is a popular and powerful programming language developed by Sun
Microsystems (now Oracle). It is designed to be simple, portable, cross-platform and
secure. Here are some of the characteristics and benefits of Java:
• Simple and easy to learn: Java has a clear and straightforward syntax, making
it easily accessible to beginners. It provides basic concepts such as classes,
objects, methods, and interfaces, making building complex applications a
breeze.
• Cross-platform: Java source code is compiled into bytecode, an intermediate
language, and runs on the Java Virtual Machine (JVM). This allows Java
applications to run on various operating systems and platforms without
changing the source code.
• Security: Java has a robust security environment, which helps prevent security
issues such as unauthorized access and malicious code execution. The Java
Virtual Machine (JVM) controls access to resources and limits malicious
activities.

• Large libraries: Java comes with a large number of standard libraries that
provide packages and classes to perform a variety of tasks. These libraries help
speed up development and reduce the effort required for application
deployment.
• Multithreading support: Java supports multithreading, allowing multiple jobs
to be handled simultaneously. This helps optimize application performance
and get the most out of multi-core computers. Object support: Java is an
object-oriented programming language (OOP) with the creation of objects and
the use of concepts such as inheritance, encapsulation, and polymorphism.
This increases organization, code reuse, and easy application maintenance.
• Rich community and documentation: Java has a large and vibrant community
with many resources, forums and open libraries. This helps solve problems,
learn and share knowledge with the worldwide Java developer community.
Within the scope of the course, Java is used to program the SpringBoot
framework.

20


2.1.1.2.

Kotlin

Kotlin is a modern, static, and object-oriented programming language,
developed by JetBrains. Kotlin is designed to provide the features and benefits of
Java, but with a concise syntax, more security, and better support for functionoriented programming. Here are some of the characteristics and benefits of Kotlin:
Keep it short and simple:
• Kotlin provides a concise and easy-to-understand syntax, which reduces the
amount of source code compared to Java. This creates code that is easy to read,
maintain, and helps increase developer productivity.

• Backwards compatible with Java: Kotlin is fully backwards compatible with
Java, allowing you to use existing Java libraries and call Java code from
Kotlin. This makes it easy to convert and integrate Kotlin into existing Java
projects without rewriting the entire source code.
• Safety and security: Kotlin provides static type checking to detect compilation
errors during development. It also supports safety features such as null safety
and access modifiers to minimize runtime errors and improve application
stability.
• Support for function-oriented programming: Kotlin supports function-oriented
programming features such as higher-order functions, lambda expressions,
and concise syntax. This allows you to write code that is concise, easy to read,
and more flexible in handling complex tasks.
• Community and development materials: Kotlin has a large and active
community, with many open documentation, forums, and libraries. This makes
it easy for Kotlin developers to find support, share knowledge and take
advantage of available resources.
Within the scope of the course, Kotlin is used for Android application
programming.
2.1.1.3.

Python

Python is a powerful, easy-to-learn, and multi-purpose programming language.
Developed in the 1990s, Python quickly became one of the most popular languages
in the world. Here are some of the characteristics and benefits of Python:
• Simple and readable syntax: Python has a simple syntax, which closely
resembles natural language, making coding easy and straightforward. This

21



simple syntax also helps minimize syntax errors and increase the organization
of the source code.
• Cross-platform support: Python can run on multiple operating systems such as
Windows, macOS, and Linux. This allows you to develop and deploy Python
applications across a variety of environments without changing the source
code.
• Large community and rich documentation: Python has a large and enthusiastic
community of programmers. This community provides many open
documentation, forums, and libraries to support development and problem
solving during programming.
• Object-oriented programming: Python supports object-oriented programming
(OOP), which allows you to use concepts such as classes, objects, inheritance,
and polymorphism. This makes it easy to organize the source code and reuse
it.
Within the scope of the course, Python is used to program the FastAPI
framework.
2.1.1.4.

TypeScript

TypeScript is a typed superset of JavaScript that adds static typing to the
language. This means that TypeScript can help you catch errors at compile time,
rather than at runtime. Here are some of the characteristics and benefits of
TypeScript:
• Static typing: TypeScript's static typing can help you catch errors at compile
time, which can save you time and frustration.
• Classes and interfaces: TypeScript's classes and interfaces can help you write
more organized and maintainable code.
• Modules: TypeScript's modules can help you organize your code into logical

units, which can make it easier to understand and reuse.
• Interoperability with JavaScript: TypeScript code can be compiled to plain
JavaScript, so you can use it in any JavaScript environment.
Within the scope of the course, TypeScript is used to program the ReactJs and
NestJs frameworks.

22


2.1.2.

Framework

2.1.2.1.

Android

In this topic, the driver application will be run on the mobile application, so we
will use the Android framework for development. Android framework is a framework
used to develop software on the Android operating system. Thisproject also uses the
Google Maps library to assist drivers in tracking location during transport.
2.1.2.2.

Spring Boot

Spring boot has the features of Spring Framework. Using Spring Data JPA
integration is a technology based on ORM and Hibernate platforms that allows
creating automatic databases with many database types suitable for future database
changes. Besides, Spring boot also supports:








Create standalone application, which can run using java -jar (for java web as
well)
Directly embed server applications (Tomcat, Jetty ...) so there is no need to
deploy WAR files
Less configuration, automatic configuration whenever possible (Reduced
coding time, increased productivity), automated libraries like lombok reduced
boilerplate code.
The system architecture is clear, easily accessible, which is the foundation for
later development.
The ecosystem revolves around Spring Boot:
o Reduce the need to write a DAO class.
o Can easily customize queries to suit the purpose of use.
o Easily create a connection with the server using Java config.
Within the scope of the topic, we use Spring Boot framework to develop the

majority of services related to transportation operations.
2.1.2.3.

FastAPI

One of the new and powerful frameworks of Python FastAPI is a great choice
for developing RESTful APIs in Python because it is as fast and convenient as the
name implies. For those who have ever been exposed to OpenAPI or specifically
Swagger will surely know the convenience of being able to interact directly with API


23


documentation easily through just a link, FastAPI has integrated extremely well with
Swagger thereby providing a fast API development ability, full-featured and standard
OpenAPI. The ecosystem revolving around FastAPI also supports very well including
documentation resources and API security by integrating with JWT.
Within the scope of the topic, we use the FastAPI framework to develop the
service in charge of authentication and decentralization.
2.1.2.4.

NestJs

NestJS is a web application development framework based on Node.js. It is built
on the basis of TypeScript and uses concepts from Angular to build server-side
applications that are efficient and easy to maintain. NestJS helps programmers build
web applications in a structured and manageable way. It offers features such as
dependency injection, module-based architecture, decorators, and other powerful
development tools to increase performance and flexibility in the development
process.
With NestJS, we can build RESTful, gRPC, GraphQL and real-time web
applications. It also supports connecting to databases through ORMs (ObjectRelational Mapping) such as TypeORM and Sequelize. NestJS offers a large
community and diverse support from the development community. It is considered a
robust, reliable, and suitable framework for building cross-platform web applications
in a Node.js environment.
Within the scope of the topic, we use NestJs framework to develop a service in
charge of managing multi tenant systems.
2.1.2.5.


ReactJs

ReactJS is a popular JavaScript framework developed by Facebook. It is widely
used to build dynamic and interactive user interfaces in web applications.
ReactJS makes web application development easy and efficient by using
reusable components. These components allow you to build complex user interfaces

24


by combining small components together. One of the strengths of ReactJS is the use
of Virtual DOM (Document Object Model). Virtual DOM optimizes performance by
updating only the necessary elements when data changes, instead of updating the
entire DOM.
ReactJS also has a large and rich community, offering many libraries and
support tools. It is also easily integrated with other technologies such as Redux for
application state management. With its flexibility and efficiency in building user
interfaces, ReactJS is a popular choice for cross-platform web application
development.
Within the scope of the topic, we use the ReactJs framework to develop
interfaces for Web applications.
2.1.3.

Databases

2.1.3.1.

PostgreSQL

PostgreSQL is a popular open source relational database management system.

PostgreSQL supports many advanced features, including multi-user support, ACID
(Atomicity, Consistency, Isolation, Durability) transactions, powerful query and
management toolchains. It also supports many data types such as integers, real
numbers, strings, dates, and other special data types.
PostgreSQL provides a powerful query language, SQL (Structured Query
Language), for performing queries and manipulating databases. It also supports
extensive features such as user-defined functions, space indexing, and external
extensions. One strong point of PostgreSQL is its high stability and reliability. It is
widely used in enterprise applications and critical systems, especially in
environments with high requirements for concurrency access and fault tolerance. In
short, PostgreSQL is a powerful, reliable and flexible database management system
that is favored in the development and user community.

25


×