0% found this document useful (0 votes)
25 views37 pages

Jurnal - Event Driven Architecture

The document presents a project report on an event-driven rental system designed to facilitate the renting of services like rooms and vehicles. It outlines the architecture, methodologies, and technologies used, including Kafka for event streaming and various programming frameworks. The system aims to enhance user experience by allowing efficient reservations and providing a platform for both renters and rentees to connect effectively.

Uploaded by

Fuady Dheo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views37 pages

Jurnal - Event Driven Architecture

The document presents a project report on an event-driven rental system designed to facilitate the renting of services like rooms and vehicles. It outlines the architecture, methodologies, and technologies used, including Kafka for event streaming and various programming frameworks. The system aims to enhance user experience by allowing efficient reservations and providing a platform for both renters and rentees to connect effectively.

Uploaded by

Fuady Dheo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/363541167

A RENTAL SYSTEM WITH EVENT-DRIVEN ARCHITECTURE

Technical Report · April 2022


DOI: 10.13140/RG.2.2.16730.21448

CITATIONS READS

0 2,814

4 authors, including:

Bhimraj Yadav Sudip Adhikari


Kathford International College of Engineering and Management 4 PUBLICATIONS 0 CITATIONS
6 PUBLICATIONS 2 CITATIONS
SEE PROFILE
SEE PROFILE

All content following this page was uploaded by Bhimraj Yadav on 14 September 2022.

The user has requested enhancement of the downloaded file.


KATHFORD INTERNATIONAL COLLEGE OF
ENGINEERING AND MANAGEMENT
Balkumari, Lalitpur

Minor Project Report


On

“A RENTAL SYSTEM WITH EVENT DRIVEN ARCHITECTURE ”


[Subject Code: CT 654]

A PROJECT REPORT
SUBMITTED TO THE DEPARTMENT OF COMPUTER AND ELECTRONICS &
COMMUNICATION ENGINEERING IN PARTIAL FULFILLMENT OF THE
REQUIREMENTS FOR THE DEGREE OF BACHELOR IN COMPUTER
ENGINEERING

Project Members
Bhimraj Yadav (075/BCT/004)
Kiran Shrestha (075/BCT/010)
Sirjan Baral (075/BCT/023)
Sudip Adhikari (075/BCT/009)

DEPARTMENT OF COMPUTER AND ELECTRONICS &


COMMUNICATION ENGINEERING
LALITPUR, NEPAL

APRIL, 2022
KATHFORD INTERNATIONAL COLLEGE OF ENGINEERING AND
MANAGEMENT
( Affiliated to Tribhuvan University )
Balkumari, Lalitpur

“A RENTAL SYSTEM WITH EVENT DRIVEN ARCHITECTURE”

A PROJECT REPORT
SUBMITTED TO THE DEPARTMENT OF COMPUTER AND ELECTRONICS &
COMMUNICATION ENGINEERING IN PARTIAL FULFILMENT OF THE
REQUIREMENTS FOR THE DEGREE OF BACHELOR IN COMPUTER
ENGINEERING

Submitted By
Bhimraj Yadav(075/BCT/004)
Kiran Shrestha(075/BCT/010)
Sirjan Baral(075/BCT/023)
Sudip Adhikari(075/BCT/009)

Submitted To
DEPARTMENT OF COMPUTER AND ELECTRONICS & COMMUNICATION
ENGINEERING

APRIL, 2022
Acknowledgement

We use this opportunity to express our sincere gratitude to everyone who supported us
throughout the course of this project. We are thankful for their aspiring guidance,
invaluably constructive criticism and friendly advice during the project work. We are
grateful to them for sharing their views on issues related to the project.

We would like to express our thankfulness to the Deputy Head of Department of


Computer and Electronics and Communication Engineering Er. Prabin Kumar Jha
and our project coordinator Er. Jalauddin Mansur for their support and constant
guidance throughout the project. We would also like to thank each person who
mentored us directly or indirectly during the course of the project.

Thanks are also due to all our colleagues and everyone who has helped us out for the
betterment of the project.

i
Abstract

This project is an event-driven based rental system where the renter can list out their
services like rooms and vehicles for the consumers and the consumers can make
reservations for the available services. This event-driven approach is commonly found
in modern applications that use microservices or any application that has decoupled
applications. Event-driven architectures are ideal for improving agility and moving
quickly. The main motive behind this project is to provide a platform for users and
owners to use rental services in an effective and efficient manner. Renting or finding
vehicles, rooms, etc on rent has not been easy anywhere. So, to overcome this gap we
have created a Rental System based on Event-Driven architecture which provides an
interface as a platform to make reservations for the services they want to rent. This
project uses Kafka as an event streaming platform for the event-driven architecture
and base64 algorithm for encoding and decoding images so as to produce and
consume media files flowing in our system. Our target audience is mainly anyone
who prefers renting out products just to those whom they prefer rather than random
people coming at the door. This application aims to rent out products for a duration
ranging from a day to weeks or months and also recommend products to them as per
their wish. The use of our Rental System can benefit the renter to rent their vehicles,
rooms/flats and rentee to get better rental services.
Keywords: Online rental system, Event-driven architecture, Producer, Consumer,
Encoding, Decoding, Microservice

ii
Table of Contents

Acknowledgement………………...…………………………………………………..i

Abstract…………………………...…………………………………………………..ii

Table of Contents………………………………...……………………..……………iii

List of Figures…………………………...…………………………………………....v

List of Tables..…………………………...…………………………………………...vi

List of Abbreviations…………………………...……………………………...……vii

Chapter 1: Introduction …………………………...………………………………...1


1.1 Background…...…………………………………………..……………………….1
1.2 Problem Statements……..…………………..……………………..………………2
1.3 Objectives………………..…………………....…………..……………………….2
1.2 Scopes……………………..……..……………………………..………………….2

Chapter 2: Literature Review…...………………...………………………………...3


2.1 Related Theory.………………………...…………………..………..…………….4
2.1.1 Event Driven Architecture……….………...……………..…………..……….4
2.1.2 Recommender System…………………………………..……...……………...5
2.2 Tools & Applications…..…………………..………………..……………..………5
2.2.1 Django…………………………...………………………………………..…...5
2.2.2 Apache Kafka……………………………………………….…………………6
2.2.3 PostgreSQL…………………………………………………………………....6
2.2.4 SQLite……………………………………………………….………..……….6
2.2.5 Next.js……………….…......….…………...……………..……………...……6
2.2.6 React Native……………………………………………..………………….....7
2.2.7 Tailwind CSS…………………………………………..……...……………….7
2.3 Algorithms...………………………………....…………..…..…………………….7
2.3.1 Base64 algorithm..………………………………………..………...………….7

Chapter 3: Methodology….……………………...…………………………………..8
3.1 Development Model…………………...…………..……..………………………..8
3.2 Process Model…..…………………..………..……………………………………9

Chapter 4: System Design...……………………...…………………………………10

iii
4.1 Block Diagram...…………………………………....……………………………10
4.2 ER Diagram...………………………………………..……..…………………….11
4.3 Schema Diagram...……………….…………………..…………..………………12
4.4 Use Case Diagram..…………………………………..………………..…………13
4.5 Sequence Diagram..…………………………………..……………………..……15
4.5.1 Sequence Diagram For Creating Services…………..…...………………...…15
4.5.1 Sequence Diagram For Making Reservation…………....………………...…17
4.6 Class Diagram…....………………………………………..……………..………18

Chapter 5: Results and Discussion.……...……...…………………………………19

Chapter 6: Conclusion……...….………………...…………………………………21

Chapter 7: Limitations and Future Works……...…………...……………………22

References………………....……………………...…………………………………23

Appendices...……………....……………………...…………………………………24

iv
List of Figures

Figure 2.1.1 Event-Driven Architecture……………………......………………….…..4

Figure 3.1 Prototype Model of Development ……………………………………....…8

Figure 3.2 Process Model………….………………………………………………..…9

Figure 4.1 Block Diagram of Rental System………………………………………...10

Figure 4.2 ER Diagram..………….………………………………………………….11

Figure 4.3 Schema Diagram..………….…………………………………………….12

Figure 4.4 Use Case Diagram…….………………………………………………….14

Figure 4.5.1 Sequence Diagram For Creating Services……………………………...16

Figure 4.5.2 Sequence Diagram For Making Reservation…………………………...17

Figure 4.6 Class Diagram…….…………………………………...………………….18

v
List of Tables

Table 5.1 Result of response time for services creation…………......……...……….19

Table 5.2 List of Renter users along with no. of created services………………...…20

vi
List of Abbreviations

AP Accounts Payable

API Application Programming Interface

AR Accounts Receivable

CRM Customer Relationship Management

CSS Cascading Style Sheets

EDA Event-Driven Architecture

FAER Fast and Easy Rent

GL General Ledger

HTML Hypertext Markup Language

HTTP Hypertext Transfer Protocol

SDLC Software Development Life Cycle

TF-IDF Term Frequency–Inverse Document Frequency

vii
Chapter 1: Introduction

1.1 Background

Nowadays many people are shifting from one city to another for education purposes,
exploring new places, for jobs, etc. In this situation, A Rental system like ours might
help the people searching for rooms & flats. And also to the people who want to rent
vehicles for a short period of time for their personal riding, visiting new places, etc.
The rental industry spans many different types of equipment from tools to heavy
construction equipment, aerial to vehicles, computers and tech things, test and
measurement equipment and highly specialized areas such as Hotels, Flats and
Temporary Accommodation rental [1]. Like most software development, initial rental
software systems were developed in the 1970s and 1980s as custom or bespoke
solutions provided for individual rental companies and occurred in parallel in
locations across the globe. In the last two decades, a number of leading players have
emerged providing solutions for everything from one or two user systems in a single
store to international, multi-company and multi-location organisations.
Rental management software should cover all aspects of a rental business in a
systematic way including Financials (GL, AR and AP), Equipment Servicing, CRM
and reporting functionality allowing rental businesses to achieve all their business
analytics from within a single package [1]. Rental management software that
integrates with 'off-the-shelf' accounting software can provide a viable alternative to
the 'all-in-one' solutions. There are distinct industry requirements that need to be
managed within the software, with Utilization one of the most important.

Online Rental System

It is a system based on an online platform which is an extended form of giving out


things often organised0 with numerous local branches and complemented by an
application allowing online reservations.

1
1.2 Problem Statement

It’s not an easy job to find and rent new rooms/flats for people easily at any time
anywhere. And also for the people who want to rent their rooms/flats to someone who
they prefer. Scammers are everywhere charging a lot for just finding and listing
rooms. Not everybody affords everything e.g hiring vehicles as needed and just for
the needed hours is not easy.

1.3 Objectives

● To design and implement a system to manage fast and easy rental


systems/services.

1.4 Scopes

This project should consider and cover the following areas:

● Capable of providing a great user experience for making the reservations.


● It can create services and reservations in an asynchronous manner through the
event-driven architecture.

2
Chapter 2: Literature Review

As technology has evolved, it has made the life of every individual easier. Nowadays,
people have options and they try to choose the best one. So, we researched about the
rental system[2] and some of the related projects. Some of the related services
available in Nepal like easyvehiclerental.com,himalyancarrental.com, gharbeti.com,
roomfindersnepal.com, etc. All of these services were simple in nature on the digital
platforms. But as the technology is growing, people need more ease and features all at
the same place.
We found a paper “A Prototype of a Mobile Car Rental System” [3] which describes a
system that is secured and enables users to reserve the vehicle they wanted. The app
also allowed users to view the rental car available, make payment for the rental car
using a credit card that ensures that users do not have to be physically present at the
rental company just to see what rental car they want to rent.
Moreover, we also studied some of the international and national related projects and
platforms like Airbnb, Zillow, Olx, Roomster, Oyo, rental Nepal, etc to take a view
and understand the mechanism used by them in this modern world. Airbnb is a
website that operates an online marketplace and hospitality service for people to lease
or rent short-term lodging. The challenges for the engineering team include high
availability, quick-scaling, etc. We researched its data architecture[4].
As we have also used a modern architecture for the development of the application,
So for that, we reviewed some of the architectures like API based architecture[5],
Event-driven architecture,container-based applications, Recommender System[6], etc.
Along with all these, recommending products[7] to users according to their needs is
also a matter of great concern to attract users and improve the user experience. So, for
that also we researched several papers and books related to content-based filtering and
collaborative filtering in the context of user’s rating and without user’s rating along
with AB testing methods for new datas[8].
As we have also focused our application architecture on processing massive amounts
of data so we researched processing stream & batch data. We studied the concept of
Data Lakes and Data Warehousing for storing massive data. For tracking location in
real-time with event-driven architecture, storing and processing massive amounts of
data for analytics purposes using big data processing frameworks, we studied and

3
researched cloud computing, distributed processing and tools like Spark, Hadoop, and
kafka[9].

2.1 Related Theory

2.1.1 Event Driven Architecture

Event-driven architecture (EDA) is a software architecture paradigm


promoting the production, detection, consumption of, and reaction to
events[10].

Figure 2.1.1 Event Driven Architecture[11]

Web-based applications have come a long way since we used to serve static
HTML content from servers. Nowadays, applications are much more complex
and use multiple frameworks, data centres, and technologies. In EDA, the
focus is shifted towards the events and how they are flowing through the
system. This shift allowed us to completely change the way we design
applications tackling the problems. A typical event-driven architecture
comprises four key stakeholders: a publisher, an event, a mediator, and a
consumer. The publisher is the source of the event. The second stakeholder,
the event, is typically modelled as an object containing semantic information
about the situation that occurred. An event signalling a low ink level, for
instance, may provide an estimate of the remaining number of printable pages
before ink completely runs out. The third stakeholder, the consumer, is the

4
party that reacts to the event. Finally, the mediator or event bus is the fourth
stakeholder that manages relations between consumers and publishers[12].

2.1.2 Recommender System

Recommender systems are trained to understand the preferences, previous


decisions, and characteristics of people and products, using data gathered
about their interactions, which include impressions, clicks, likes, and
purchases. Recommender systems help solve information overload by helping
users find relevant products from a wide range of selections by providing
personalized content[13]. Some of its types are:-

● Collaborative filtering
● Content-based filtering
● Hybrid filtering

2.2 Tools & Applications

2.2.1 Django

Django is a high-level Python web framework that encourages rapid


development and clean, pragmatic design. Built by experienced developers, it
takes care of much of the hassle of web development, so you can focus on
writing your app without needing to reinvent the wheel. It’s free and open
source. Some of its features are:

● Ridiculously fast.
● Reassuringly secure.
● Exceedingly scalable.

2.2.2 Apache Kafka

Apache Kafka is a framework implementation of a software bus using


stream-processing. It is an open-source software platform developed by the
Apache Software Foundation written in Scala and Java. The project aims to
provide a unified, high-throughput, low-latency platform for handling

5
real-time data feeds. Kafka can connect to external systems (for data
import/export) via Kafka Connect and provides Kafka Streams, a Java stream
processing library. Kafka uses a binary TCP-based protocol that is optimised
for efficiency and relies on a "message set" abstraction that naturally groups
messages together to reduce the overhead of the network round trip. This
"leads to larger network packets, larger sequential disk operations, contiguous
memory blocks which allows Kafka to turn a burst stream of random message
writes into linear writes.

2.2.3 PostgreSQL

PostgreSQL, also known as Postgres, is a free and open-source relational


database management system emphasising extensibility and SQL compliance.
It was originally named POSTGRES, referring to its origins as a successor to
the Ingres database developed at the University of California, Berkeley.

2.2.4 SQLite

SQLite is a relational database management system contained in a C library. In


contrast to many other database management systems, SQLite is not a
client-server database engine. Rather, it is embedded into the end program.
SQLite generally follows PostgreSQL syntax but does not enforce type
checking.

2.2.5 Next.js

Next.js is an open-source development framework built on top of Node.js


enabling React based web applications functionalities such as server-side
rendering and generating static websites.Next.js gives the best developer
experience with all the features you need for production: hybrid static & server
rendering, TypeScript support, smart bundling, route pre-fetching, and more.

2.2.6 React Native

React Native is an open-source UI software framework created by Meta


Platforms, Inc. It is used to develop applications for Android, Android TV,

6
iOS, macOS, tvOS, Web, Windows and UWP by enabling developers to use
the React framework along with native platform capabilities.

2.2.7 Tailwind CSS

Tailwind CSS is a utility-first CSS framework for rapidly building custom user
interfaces.

2.3 Algorithms

2.3.1 Base64 algorithm

The Base64 algorithm is one of the algorithms for Encoding and Decoding an
object into ASCII format, which is meant for the base number 64 or one of the
methods used to encode the binary data. The encoding principle is to select a
collection of 64 printable characters, so data can be stored and transferred
across media designed to handle text data, another use of Base64 encoding is
to obfuscate or randomize data. The term Base64 originates from a specific
MIME content transfer encoding.

Base64 encoding schemes are commonly used when there is a need to encode
binary data that needs to be stored and transferred over media that are
designed to deal with ASCII. This is to ensure that the data remain intact
without modification during transport. Base64 is commonly used in a number
of applications including email via MIME, and storing complex data in XML.
The characters generated by this Base64 transformation consist of A.Z, a..z
and 0..9, and attached to the last two characters symbolized + and/and one
character equal to (=) used for adjustment and fitting Binary data or the term is
applied to as filler fitting. The character of the symbol to be generated will
depend on the running algorithm process. Base64 cryptography is widely used
in the internet world as a medium data format to send data, this is because the
result of Base64 form is plaintext, then this information will be much easier to
send, compared to the format of information in the form of binary.

7
Chapter 3: Methodology

3.1 Development Model

Figure 3.1 Prototype Model of Development

The prototype Model of software development provides flexibility in the development


process by allowing the user to interact and experiment with a working representation
of a product known as a prototype.[14]
The Prototyping Model is one of the most popularly used Software Development Life
Cycle Models (SDLC models). This model is used when the customers do not know
the exact project requirements beforehand. In this model, a prototype of the end
product is first developed, tested and refined as per customer feedback repeatedly till
a final acceptable prototype is achieved which forms the basis for developing the final
product.
In this process model, the system is partially implemented before or during the
analysis phase thereby giving the customers an opportunity to see the product early in

8
the life cycle. The process starts by interviewing the customers and developing the
incomplete high-level paper model. This document is used to build the initial
prototype supporting only the basic functionality as desired by the customer. Once the
customer figures out the problems, the prototype is further refined to eliminate them.
The process continues till the user approves the prototype and finds the working
model to be satisfactory.

3.2 Process Model

Figure 3.2 Process Model

As shown in the above diagram, three different processes have been listed. In the first
process, the steps for the creation of services by the renter have been shown.
Similarly, in the second process, the steps for making the reservation by any user have
been shown. In the third process, it shows the steps which occur for the creation and
consumption of the event. Here in this case, after the event is produced, it gets queued
in Kafka broker and then consumed by the consumer to process the tasks like
inserting/ updating database records, sending emails, uploading files, etc.

9
Chapter 4: System Design

4.1 Block Diagram

A block diagram is a diagram of a system in which the principal parts or functions are
represented by blocks connected by lines that show the relationships of the blocks.
They are heavily used in engineering in hardware design, electronic design, software
design, and process flow diagrams.
Block diagrams are typically used for higher-level, less detailed descriptions that are
intended to clarify overall concepts without concern for the details of implementation.
Contrast this with the schematic diagram and layout diagrams used in electrical
engineering, which show the implementation details of electrical components and
physical construction.

Figure 4.1 Block Diagram of the Rental System

Description: This project is an event-driven based rental system that can be used to
create room and vehicle services and make reservations for the available services. The

10
renter can use the web interface to create their services which are later displayed on
the respective listing pages. When the request for service creation arrives in the API
the system creates an event to create that service which is consumed by the consumer
to insert into the database, send emails and upload files to storage. Event-driven is the
core working principle of this system.

4.2 ER Diagram

Figure 4.2 ER Diagram

In the above ER Diagram, we have five entities i.e. User, Room, Vehicle, Media and
Reservation shown in the rectangular boxes with their respective attributes in the
ellipse and relations in the diamond boxes. User and Room is one to many as a
rentee(user) can have many rooms however a room might belong to only one
owner(renter) at the same time. Similarly, User and Vehicle and Reservation are one

11
to many relationships. Here, the Media model belongs to both the Room and Vehicle
models. Similarly, the Reservation model belongs to both the Room and Vehicle
models.

4.3 Schema Diagram

Figure 4.3 Schema Diagram

As in the ER and Schema Diagram, we have five entities which are also shown in the
above figure.

12
Entities
● User
● Room
● Vehicle
● Media
● Reservation
We have used a new concept for the relationships i.e Polymorphic Relations which
can be noticed in the above figure 4.3. A polymorphic relationship is a relationship
where a model can belong to more than one other model on a single association. Here,
the Media model belongs to both the Room and Vehicle models. Similarly, the
Reservation model belongs to both the Room and Vehicle models. Following relation
convention is followed:
1. Users can create many Reservations.
2. A Renter(User) can create many Room and Vehicle Services.
3. Room and Vehicle can have one or many media files.
4. Room and Vehicle can have one or many reservations associated with it.

4.4 Use Case Diagram


Use case diagrams are usually referred to as behaviour diagrams used to describe a set
of actions (use cases) that some system should or can perform in collaboration with
one or more external users of the system (actors). Each use case should provide some
observable and valuable results to the actors or other stakeholders of the system.
The actors in this system are
● Rentee (Primary)
● Renter (Primary)
● Admin (Secondary)
In this system, a normal user can register their account and login into the system. A
user can make a reservation for available services on the respective listing pages of
rooms and vehicles. Then the user can check the reservations from the dashboard
which they have created. Similarly, a renter can create respective services for the
rooms and vehicles and view them from the dashboard.

13
Figure 4.4 Use Case Diagram

4.4.1 Use Case Descriptions:

Use Case: Login/Register


Actors: Rentee/Renter
Description: For using any of our system services, any user must log in to our system
with the login credentials they will set while making an account for the first time in
our system.

Use Case: Make Reservation


Actors: Rentee
Description: If a user has an account on our system then the user can create a
reservation for any of our services based on their need ( room, vehicle).

14
Use Case: Update Profile
Actor: Rentee/Renter
Description: User can update their profile from the dashboard.

Use Case: Create / Check Services


Actor: Renter
Description: Our system will provide the feature to renters where they can create the
service for rooms and vehicles on our system. The renter can also come and check the
status of his/her services on our system.

Use Case: Approve Renter/ Services


Actor: Admin
Description: Admin of our system will bear the responsibility to approve any new
renter joining our system and the services they are trying to list on our system.

Use Case: Notify


Actor: Renter
Description: Our rental system also sends emails as notifications to the renter
whenever a reservation of their service is made.

4.5 Sequence Diagram


The sequence diagram is used primarily to show the interactions between objects in
the sequential order that those interactions occur.

4.5.1 Sequence Diagram For Creating Services


A sequence of actions takes place for creating services by the renter. A renter logs into
the system first through the website where they are presented with a dashboard for
various actions. Renter selects the option for creating respective services for the
rooms or the vehicles and makes a submission for the creation. After the data is valid
the system responds with a success message. After that renter can check if the
services have been created or not. During the creation of services, an event is fired for
the creation of the respective service which is later consumed by the consumer to
upload the files to the storage service and then insert the data into the database.

15
Figure 4.5.1 Sequence Diagram For Creating Services

4.5.2 Sequence Diagram For Making Reservation


A sequence of actions takes place for creating reservations by the rentee. A renter can
create an account with valid credentials and log into the system before making any
reservations. A user can visit the respective service page and make a reservation for
that service with a start and end date for the reservation. After the request for the
reservation arrives at the API then an event is produced for the creation of reservation
which is then consumed by the consumer for inserting the respective record into the

database.

16
Figure 4.5.2 Sequence Diagram For Making Reservation

17
4.6 Class Diagram

Figure 4.6 Class Diagram

18
Chapter 5: Results and Discussion
The project was completed with the creation of a rental system web app and mobile
app, where renters could create services for the rooms and vehicles respectively and
users or rentees can make reservations for the available services and view the
analytics part in the dashboard.
During the system implementation To test the system, we conducted manual creation
of the services by filling all the fields and uploading one image in order to record the
system response time in localhost.
Internet Speed: 25 Mbps

Table 5.1: Result of response time for services creation

S.N. Service Type Image Size Response Time in ms

1 Room 158 KB 129 ms

2 Room 202 KB 147 ms

3 Room 4.5 MB 459 ms

4 Vehicle 286 KB 119 ms

5 Vehicle 2.4 MB 286 ms

From the above table it can be seen that for most of the time the avg response time
was around between 0.1 to 1 second but in the case, without using event-driven
approach and it was more than 2 seconds.

PageSpeed Insights Report:


a) On Mobile
Performance: 88 % Speed Index: 6.1 s
First Contentful Paint: 1.9 s Time to Interactive: 2.8 s
Largest Contentful Paint: 2.3 s Cumulative Layout Shift: 0.002
b) On Desktop
Performance: 97 % Speed Index: 1.7 s
First Contentful Paint: 0.5 s Time to Interactive: 0.6 s
Largest Contentful Paint: 0.5 s Cumulative Layout Shift: 0.003

19
To further test the analytics part of the system, we conducted the survey by creating
the user accounts, services and reservations.
Five Renter users were created along with the creation of services.

Table 5.2: List of Renter users along with no. of created services.

S.N. Renter Users Room Service Vehicle Service

1 Bhimraj Yadav 2 3

2 Sudip Adhikari 2 3

3 Sirjan Baral 3 2

4 Kiran Shrestha 3 2

5 Elite Automobiles 0 2

Then after that two users named Ramesh and Hari were created for making the
reservation and visualizing the analytics part.
Ramesh reserved a room for 5 days with a per-day price of Rs.850 and a bike for 3
days with a per-day price of Rs.1000 which were owned by Sudip and Sirjan
respectively. Similarly, Hari reserved a room for 2 days with a per-day price of Rs.950
and a car for 1 day with a per-day price of Rs.8500 which were owned by Sudip and
Elite respectively.
Analytics for Renters:
Sudip:
a) Total Sales Item: 2 Elite:
b) Total Sales Amount: 6150 a) Total Sales Item: 1
Sirjan: b) Total Sales Amount: 8500
a) Total Sales Item: 1
b) Total Sales Amount: 3000

Analytics for Rentee:


Ramesh: Hari:
a) Total Reservations: 2 a) Total Reservations: 2
b) Reservations Amount:7250 b) Reservations Amount:10400

20
Chapter 6: Conclusion
The project aims to create a rental system web app and mobile app based on an
event-driven architecture with the help of immensely growing technology like Kafka
and various other frameworks. This study was designed to understand event-driven
architecture and how it can be implemented to create a rental system. This has also
helped in a better understanding of how an event flows and is streamed. With this
project, through a web interface renters can create rooms/vehicles services and also
visualize the analytics from the dashboard. Similarly, users/customers can make
reservations for the respective services and also see the analytics of the reservations.

21
Chapter 7: Limitations and Future Works
Limitations:
The limitations of the project are:
● This type of system can get costlier for small scale business as it comprises
several services.
● Creation of services might get interrupted if the proper flow of
messages/events breaks.
● The system’s architecture can increase the complexity of API/Backend.

Future Enhancements:

● Making the system able to accept payments.


● Show analytics of reservations and other attributes.
● Notifications functionality can be added to notify users in real time.
● Make recommendations of services to the users.
● Add Efficient filtering and searching of the services.

22
References

[1] "Wikipedia - Rental management software," [Online].


Available:https://en.wikipedia.org/wiki/Rental_management_software.

[2] A. Mehta , V. Patil , A. Shinde ,”LeKeDe: Online Rental System”,IJERT ,2019.

[3] C.S. Mon, T.K. Tee and A.A. Hussin, “A Prototype of a Mobile Car Rental
System”, Journal of Physics: Conference Series,2020.

[4] J. Mayfield, K. Puttaswamy, "Data Infrastructure at Airbnb"[Online].


Available:https://medium.com/airbnb-engineering/data-infrastructure-at-airbnb-
8adfb34f169c.

[5] B. Thippireddy,” Django Rest Framework”, Packt Publishing,2020.

[6] A. Zhang and Z. C. Lipton and M. Li and A. J. Smola,

“Dive into Deep Learning”,https://d2l.ai,2020

[7] B. Gipp, J. Beel and C. Hentschel,” Scienstein: A Research Paper Recommender


System”, ResearchGate,2009

[8] P. Singh, P. P. Dutta, P. Choudhury and A. Dey,” Recommender Systems: An


Overview, Research Trends, and Future Directions”, International Journal of
Business and Systems Research,2021

[9] K. Waehner, “Use Cases and Architectures for Apache Kafka across
Industries”[Online].Available:https://www.kai-waehner.de/blog/2020/10/20/apac
he-kafka-event-streaming-use-cases-architectures-examples-real-world-across-i
ndustries

[10] B. Stopford, “Designing Event-Driven Systems”, O'Reilly Media, Inc.,2018.

[11] "Understanding the Event-driven Architecture," [Online].


Available:https://softobiz.com/understanding-the-event-driven-architecture/.

[12] S.D. Labey, E. Steegmans, “On the promises and challenges of event-driven
service-oriented architectures.”, JOUR,2008.

[13] B. Schiffer, C. Deotte etc. “Using Deep Learning to Win the Booking.com
WSDMWebTour21 Challenge on Sequential
Recommendations”,http://ceur-ws.org,2021.f

[14] "Prototyping Model" [Online].


Available:https://www.techtarget.com/searchcio/definition/Prototyping-Model.

23
Appendices

Figure A1 Listing Room Services

Figure A2 Listing Vehicle Services

24
Figure A3 Making Reservation

Figure A4 Rentee Dashboard

25
Figure A5 Renter Dashboard

Figure A5 Creating Room Service

26
View publication stats

Figure A6 Flow of Events from producer to consumer

Figure A7 Home Page with dark mode enabled

27

You might also like