Rent Nepal Project

Download as pdf or txt
Download as pdf or txt
You are on page 1of 32

NEW SUMMIT COLLEGE

Tribhuvan University

Institute of Science and Technology

In partial fulfillment of the requirement for the Bachelor Degree in

Computer Science and Information Technology

RENTNEPAL

A PROJECT REPORT

Submitted to:

Department of Computer Science and Information Technology

Submitted by:

Prazual karki (20435/075)

Khuman Thapa (20420/075)

Rupesh Chaudhary (20440/075)


Tribhuvan University

Institute of Science and Technology

New Summit College

Supervisor’s Recommendation

I hereby recommend that this project prepared under my supervision by Prazual karki,
Rupesh chaudhary and khuman thapa entitled “RentNepal” in partial fulfillment of the
requirements for the degree of CSIT is recommended for the evaluation.

Mr. Amit Ghimire

Project Supervisor

New Summit College

Shantinagar, Kathmandu
Tribhuvan University

Institute of Science and Technology

New Summit College

LETTER OF APPROVAL
This is to certify that this project prepared by Prazual Karki, Khuman thapa and
Rupesh chaudhary entitled “RentNepal.” in partial fulfillment of the requirements for
the degree of BSc CSIT has been evaluated. In our opinion, it is satisfactory in the scope
and quality as a project for the required degree.

Mr.

External Examiner …………………...


Tribhuvan University Signature Date

Mr. Chok Raj Dawadi

College Chief ………………….


New Summit College Signature Date

Mr. Amit Ghimire


Supervisor …………………..
New Summit College Signature Date
ACKNOWLEDGEMENT
Apart from the efforts of all the team members, the section of the project report topic
depends largely on the inspiration and guidance of our teachers. We take this opportunity
to express our gratitude to the teachers who have been instrumental in the approval of this
project topic.

We would like to show our greatest appreciation to Mr. Amit Ghimire sir and other staff
members. We thank them enough for their tremendous support and help. They motivated
and encouraged us every time while selecting project topic and helping us during the
project. With their help, we are continuously improving our project.
ABSTRACT
RentNepal is an online platform designed to facilitate the sharing of products among users
in Nepal. The platform allows registered users to upload information about their products,
including descriptions, images, and rental rates, as well as browse and rent products
uploaded by other users.

Transactions and payments are completed offline, with users arranging the details of the
rental through phone as users have to physically deliver the product. The website also
includes a review system that allows users to rate and review each other based on their
rental experiences, helping to build trust and establish a reliable user base.

Overall, RentNepal aims to promote sustainable and affordable consumption practices by


encouraging the sharing of resources among users. The website is user-friendly, easy to
navigate, and secure, with measures in place to protect user privacy and data. Through its
innovative approach to product-sharing, RentNepal has the potential to make a significant
impact on the Nepali market and promote a more sustainable and community-oriented
lifestyle.

Keywords: Online platform, Product sharing, Rental marketplace, Review system


etc.
Table of Contents
Chapter 1: Introduction .................................................................................................................... 1
1.1 Introduction ............................................................................................................................ 1
1.2 Problem Definition ................................................................................................................. 1
1.3 Objectives............................................................................................................................... 1
1.4 Scope and Limitation ............................................................................................................. 2
1.5 Report Organization .............................................................................................................. 2
1.6 Development Methodology .................................................................................................... 3
Chapter 2: Background study and Literature Review ...................................................................... 4
2.1 Background study................................................................................................................... 4
2.2 Literature Review ................................................................................................................... 4
Chapter 3: System Analysis ............................................................................................................. 5
3.1 Requirement Analysis ............................................................................................................ 5
3.1.1 Functional Requirements................................................................................................. 5
3.1.2 Non-functional Requirements ......................................................................................... 6
3.2 Feasibility Analysis ................................................................................................................ 7
3.2.1 Economic......................................................................................................................... 7
3.2.2 Operational ...................................................................................................................... 8
3.2.3 Technical ......................................................................................................................... 8
3.2.4 Schedule .......................................................................................................................... 8
3.3 Structuring System Requirements .......................................................................................... 9
3.3.1 Data Modeling ................................................................................................................. 9
3.3.2 Process Modeling .......................................................................................................... 10
Chapter 4: System Design .............................................................................................................. 11
4.1 System Design...................................................................................................................... 11
4.1.1 Database Schema Design .............................................................................................. 11
4.1.2 User Interface Design .................................................................................................... 12
4.2 Algorithm Details ................................................................................................................. 13
Chapter 5: Implementing and Testing ............................................................................................ 14
5.1 Implementation .................................................................................................................... 14
5.1.1 Tools and technology Used ........................................................................................... 14
5.1.2 Implementation Details of Modules .............................................................................. 15
5.2 Testing .................................................................................................................................. 17
5.2.1 Unit Testing ................................................................................................................... 17
Chapter 6: Conclusion and Recommendations .............................................................................. 18
6.1 Conclusion............................................................................................................................ 18
6.2 Recommendations ................................................................................................................ 18
References ...................................................................................................................................... 20
Appendix ........................................................................................................................................ 21
Screenshots..................................................................................................................................... 21
List of Figures

Figure 3.1: Use case diagram


Figure 3.2: Gantt chart
Figure 3.3: ER-Diagram
Figure 3.4: Level-0 DFD

Figure 4.1 Database schema

Figure 4.2 User Interface (Home Page)

Figure 4.3 User Interface (Register page)


List of Tables

Table 5.1: Unit Testing for Register Model


Table 5.2: Unit Testing for Login Model
List of Abbreviations

DFD: Data Flow Diagram

SPA: Single Page Application

CSS: Cascading style sheet

HTML: Hyper Text Markup Language

ER: Entity-Relationship diagram


Chapter 1: Introduction
1.1 Introduction
RentNepal is an online platform designed to promote sustainable and affordable
consumption practices by facilitating the sharing of resources among users in Nepal. The
platform allows registered users to upload information about their products, including
descriptions, images, and rental rates, as well as browse and rent products uploaded by
other users. Through its innovative approach to product-sharing, RentNepal has the
potential to make a significant impact on the Nepali market and promote a more sustainable
and community-oriented lifestyle.

This project report will provide an overview of the RentNepal platform, including its
objectives, features, and implementation. The report will also discuss the challenges and
opportunities associated with the development and implementation of such a platform, as
well as the potential impact it could have on the Nepali market and beyond.

1.2 Problem Definition


Due to increasing inflation and raise in prices of everything, a normal people cannot afford
everything. People can’t buy those things which they want in their budgets. It can’t be
worthy even if they buy those things and never uses them or use after a long time. Some
wants some things only for a small amount of time. In this case, our project can be a better
platform for them to enjoy their favorite products and makes like they can afford them.
Renting can be a more affordable option for consumers who cannot afford to purchase
expensive products outright or who only need a product for a short period of time.

1.3 Objectives
The objectives of these projects are as follows:

i. Provide a search function that allows users to find products available for rent based
on location, category, and names.

ii. Encourage users to rent instead of buying new products.


iii. Offer competitive pricing for rented products

1
1.4 Scope and Limitation
The scope of a renting system is broad and varied, and it has the potential to cover a wide
range of areas. The goal of a renting system is to provide a platform where individuals or
businesses can rent out their items or services to others. One of the main scopes of a renting
system is to facilitate the sharing economy, which promotes the sharing of resources and
promotes sustainability. Additionally, renting systems can be used to rent out spaces, such
as vacation properties, event venues, and office spaces. The scope of a renting system can
also extend to specialized items, such as medical equipment or high-end luxury items.

There are several limitations to the RentNepal website project, which include:

Limited market: The website may have a limited market as not everyone may be
comfortable with renting items online, or they may prefer to purchase items outright instead
of renting them.

Offline transactions and payments: The website relies on offline transactions and
payments, which can pose security risks and make it difficult to track transactions.

Trust issues: Since the website relies on peer-to-peer transactions, there may be trust
issues between users, which can lead to disputes over product condition, payment, and other
issues.

Limited product offerings: The website may have a limited selection of products available
for rent, which can limit its appeal to users.

1.5 Report Organization


This report is organized into 5 chapters:

Chapter 1: “Introduction”- This chapter introduces the background, problem statement,


objectives, scopes, and limitations of the project.

Chapter 2: “Background Study and Literature Review”- This chapter provide


information about existing knowledge in a specific field by discussing various studies and
developments.

2
Chapter 3: “System Analysis”- This chapter describes the functional and non-functional
requirements, economic feasibility, technical feasibility, operational feasibility, and
scheduling feasibility.

Chapter 4: “System Design”- This chapter introduces about the system and interface
design of the project.

Chapter 5: “Implementing and Testing”- This chapter clearly illustrates the methods and
tools used to implement the project.

Chapter 6: “Conclusion and Future Scope”- This is the final chapter that concludes the
project and talks about the future scopes of this project.

1.6 Development Methodology


For developing our project, we have used the Agile method due to its simplicity and
flexibility. It helps us to break down into one or more iterations with the last iteration
bringing the entire product. Person and interactions are valued more than processes and
tools in this methodology. It enables our project teams in software development to work
quickly and collaboratively on a project while being able to adapt to changing requirements
in development. It also enables our teams to react to feedback quickly, so we can make
changes at each sprint and product cycle.

3
Chapter 2: Background study and Literature Review

2.1 Background study


The concept of renting has been in existence for centuries, dating back to ancient times
when people used to borrow goods and services from each other. Renting products has
become an attractive alternative to owning them for many people, as it offers a more
affordable and sustainable way of accessing the products they need.

In Nepal, the rental industry is still in its early stages, with limited options available for
consumers. There are a few rental services available for specific products, such as cars and
bikes, but there is a significant gap in the market for a comprehensive rental platform that
offers a wide range of products.

RentNepal aims to fill this gap by providing a platform where users can take products for
rent and upload products to rent them. The platform will offer a user-friendly interface and
a variety of products. The idea behind RentNepal is to make renting products more
accessible and convenient for users while also promoting sustainability and reducing waste.
By encouraging people to rent instead of buy, RentNepal hopes to reduce the environmental
impact of consumerism and promote a circular economy.

2.2 Literature Review


As part of the research for our project, we took a look at various systems that could be
used as alternatives to the one we are or developing or vice versa. These are the ones we
picked out as a select few:

• Kapadarent pvt. ltd:

Kapada Rent Pvt. Ltd is a private limited company located at New Baneshwor,
Shankhamul road. It allows users to browse and take on rent the products displayed on
the site or to purchase certain products and services listed there on web.

• Onrotate.com:

OnRotate is a peer-to-peer luxury fashion platform where you can rent clothing shoes
and accessories from luxury designer brands. It allow members to rent and lend clothes,
shoes and accessories to other members. It is a private limited company registered in
south Africa.

4
Chapter 3: System Analysis
3.1 Requirement Analysis

We have identified and documented the various requirements that are related to our
business objective. Requirements gathering help us to clearly understand the needs of the
user, defining the scope of the project, and assessing the timescales and resources required
to complete it. There are two types of requirement which are as follows:

3.1.1 Functional Requirements


The functional requirements of the system depend on the role of the user. Our system has
two different roles i.e., Admin and User.

The functional requirements of our system are as follows:

User module:

• Can login and update their details.

• Can have their own profile and dashboard.

• Can browse and search products on the site.

• Can upload products and update or delete the product details if needed.

• Can book other product and notify the owner.

• Can give reviews and like to the product

Admin module:

• Can register and login to the system.

• Can see all the users and product details.

• Can delete users and product details.

• Can track the rental details.

5
The functional requirements can be better understood using use case diagram.

• Use Case Diagram

The use of a case diagram is developed during the requirement analysis phase that
models the static structure of the system. Given shows the use case model of the
RentNepal, which diagrammatically shows a relationship between actors (Admin,
user) along with their goals.

Figure 3.1: Use case diagram

3.1.2 Non-functional Requirements

The systems do also have some non-functional requirements such as:

• Performance:

The performance requirement provides detailed specification of the user interaction


with our system and measurements placed on the application performance. The
performance will be viable to the users. Response time will not be longer if the user

6
has a proper internet connection and for the fault tolerance, if the system loses internet
connection or the systems get some input or failure errors, the user will be informed.

• Maintainability:

The system will be easy to extend. The code should be written in a way that it favors
implementation of new functions. In addition, our App was designed to be scalable in
mind, with the use of highly scalable database such as Mongodb and backend engine
such as Nodejs makes it easy to create new databases, add or remove features.

• User interface:

The user interface creation are done with modern single page application (SPA)
React.js and led by CSS and HTML to make it look better.

• Security

Secure connection between user and system will be implemented. Only authenticated
users are allowed to see people problems and. No two or more users with the same
email will be created.

3.2 Feasibility Analysis


RentNepal is a project that aims to provide a platform for users to rent and lend various
products to others. The feasibility study indicates that the project is viable and can be
implemented successfully. The market for renting and lending products in Nepal is
currently inadequate, with few established players in this space. Therefore, there is a
significant opportunity for RentNepal to capture a substantial share of the market.
Additionally, there is a growing trend towards sustainability and conscious consumption,
which makes renting a more attractive option for many consumers.

The feasibility study of the project is carried out which are mentioned below:

3.2.1 Economic

RentNepal has a high potential to generate revenue from ads and from commissions on
successful transactions in the future. The platform can capture a significant share of the
rental market in Nepal, which is currently underserved. Furthermore, the increasing trend

7
towards sustainability and conscious consumption makes renting an attractive option for
consumers. Hence, the RentNepal project is economically feasible and has a potential for
profitable returns.

3.2.2 Operational

RentNepal requires a team of experienced professionals to operate the platform, including


customer support representatives, marketing personnel, and technical support staff. The
platform provides a user-friendly and a smooth rental experience for both renters and
borrowers. A well-defined operational plan can ensure RentNepal's successful launch and
long-term sustainability.

3.2.3 Technical

The RentNepal platform has a robust and secure system that can handle user data,
transactions, and communication. The platform is scalable to accommodate growing user
numbers and their rental requirements. Furthermore, the platform has been developed using
the latest technologies and programming languages like MongoDB, Node.js, React and
JavaScript to ensure that it is secure and easy to use.

3.2.4 Schedule

The time required to complete the project and the time spent on each activity are shown in
the diagram below.

Table 3.2: Gantt chart


8
3.3 Structuring System Requirements
A complete understanding of software requirement is essential to the success of a web
development effort. We used Data flow diagram and Er-Diagram to understand the logical
modeling of processes and the relationship between different entities and their relationships
present within the system.

3.3.1 Data Modeling


For data modeling, we used Entity Relationship (ER) Diagram which is a type of flowchart
that illustrates how “entities” such as people, objects or concepts relate to each other within
a system. We have used a defined sets of symbols such as rectangles for entities, diamonds
for relationships, ovals for attributes and connecting lines to depict the interconnection of
the entities, relationships and their attributes.

Figure 3.3: E-R Diagram

9
3.3.2 Process Modeling
For Process modeling, we used Data Flow Diagram (DFD) to show flow of data in our
proposed system

Figure 3.4: Level 0 DFD

10
Chapter 4: System Design
4.1 System Design
We define various components, modules, interfaces, and data for a system to satisfy
specified requirements. Various diagrams like use case diagram, ER diagram, DFD etc.
have been used to design the system

4.1.1 Database Schema Design


We have designed the database schema that represents the logical view of the entire
database and defines how the data is organized and how the relations among them are
associated. It formulates all the constraints that are to be applied on the data and defines its
entities and the relationship among them. It contains a descriptive detail of the database,
which can be depicted by means of schema diagrams. The database schemas of the
application are follows:

Figure 4.1: Database Schema

11
4.1.2 User Interface Design
User interface design is an important task to attract the users on our system .We design
interfaces for computing devices and hardware so that they’re easy for people to use.

Figure 4.2: User interface (home page)

Figure 4.3: User Interface (register page)

12
4.2 Algorithm Details
The algorithm we are using is content based filtering algorithm that recommends products
on the basis of user’s past activities.

Content based filtering algorithm:

I. Start
II. Collect data about the items that will be recommended.
III. Create a profile for each item in the system by summarizing its attributes.
IV. Collect data about the users of the system which might include user preferences,
ratings, and demographic information.
V. Compute a user profile by aggregating the profiles of the items that the user has
interacted with.
VI. Compute the similarity between each item in the system and the user's profile. This
can be done using a similarity metric such as cosine similarity.
VII. Rank the items based on their similarity to the user's profile, and present the top
items to the user.
VIII. Evaluate the performance of the system using metrics such as precision, recall, and
F1-score.
IX. Iterate through the above steps, making improvements to the system and evaluating
its performance until satisfactory results are achieved.
X. Stop

13
Chapter 5: Implementing and Testing
5.1 Implementation

After gathering all the requirements and designing the system, we began to implement the
project using variety of technologies and tools available freely. The project is developed
using MERN stack(MongoDb,expressJs,ReactJs,NodeJs).

5.1.1 Tools and technology Used


The tools and technology that were used to develop our project were:

• Browser:

We used Google chrome as a browser to access data from the database and run our
project.

• Visual Studio code:

We used Visual Studio Code which is a lightweight but powerful source code editor to
write our codes for our project.

• Node Js:

For backend technology, we used Node.js which is a non-blocking, event driven


javascript runtime environment. It helps us to build scalable network application.

• MongoDb:

MongoDB is used as a database (called as NoSQL database) to build our applications.


With its flexible schema approach, It is easy to build prototype projects, add or remove
things unlike in traditional SQL databases.

• React.Js:

React is used as a frontend which is a JavaScript library for building user interfaces. It
interacts the users by dynamically changing the data rather than opening a new file,
which makes React highly efficient and fast than traditional html files.

14
5.1.2 Implementation Details of Modules

The system contains different module to make up the system. Some of the modules are as
follows:

Login module:

In this login module, the general user must input his email address and password if he/she
has already got an account, else the user should register.

Dashboard module:

The dashboard module provides update, delete, add products functionality and can cancel
booking of the products.

Profile module:

This module includes the page for updating and customizing the profiles for the users

Product module:

This module includes all the fetching and searching of all the products with its details.

Recommendation module:

This module recommends products to the users based on their rental history which are
saved on the database.

Algorithm Implementation:

We have used content based filtering algorithm to recommend users the products based on
their rental history which is implemented as:

const RentalProducts = require('../models/rentalDetailsSchema')


const Product = require('../models/productSchema')

const getRecommendedProducts = async (request, response) => {


try {
// Define the user's rental history
const UID = request.params.id
if (UID) {
const userRentalProducts = await RentalProducts.find({
userId: UID,
})
const availableProducts = await Product.find()

15
// Define a function to calculate the similarity score between two
items
function calculateSimilarity(item1, item2) {
// Calculate the similarity score based on shared attributes
const sharedAttributes = ['type', 'price', 'location']
let similarity = 0
sharedAttributes.forEach((attribute) => {
if (item1[attribute] === item2[attribute]) {
similarity++
}
})
return similarity
}

// Define a function to recommend items to the user based on their


rental history
function recommendItems(userRentalProducts, availableProducts) {
const recommendedItems = []
availableProducts.forEach((item) => {
let similarityScore = 0
userRentalProducts.forEach((rental) => {
similarityScore += calculateSimilarity(item, rental)
})
// Add the item to the recommended list if it has a high
similarity score
if (similarityScore > 1) {
recommendedItems.push(item)
}
})
return recommendedItems
}

const Items = recommendItems(userRentalProducts, availableProducts)


const recommendedItems = Items.filter((products) => {
return products.userId !== UID
})

if (recommendedItems.length > 0) {
return response.status(200).json(recommendedItems)
} else {
return response.status(200).json(availableProducts)
}
} else {
return response.status(400).json(error)
}
} catch (error) {
return response.status(400).json({ error: error })
}

16
5.2 Testing
After implementing the project, we performed unit testing to identify errors, gaps or
missing requirements in contrast to actual requirements.

5.2.1 Unit Testing


For Register (user model) function: -

S. Test Case Result Expected Remarks


N Result
1 (Prazual,karki,[email protected], Invalid gmail Register failed
prazual12345,9800454545, succesful

Kathmandu,image.jpg)
2 (Prazual,karki,[email protected], Register Register passed
prazual12345,9800454545, succesfully succesfull

Kathmandu,image.jpg)
3 (Prazual,karki,[email protected], User already Register failed
prazual12345,9800454545, exists with this succesfull
email
Kathmandu,image.jpg)
4 (khuman,thapa,[email protected], Registration Register passed
khuman12345,9800454545, Successful succesfull

Kathmandu,image.jpg)

Table 5.1: Unit Testing for register function

For Login (Email, password) function:

S. N Test Case Result Expected Result Remarks

1 ([email protected], Invalid password Login success failed


khuman123) for the username

2 ([email protected], Login Successful Login success passed


khuman12345)

Table 5.2: Unit Testing for Login function

17
Chapter 6: Conclusion and Recommendations
6.1 Conclusion
The RentNepal website project provided us with valuable insights and learnings in various
areas, such as project management, teamwork, and feature development. The project was
an opportunity to apply theoretical knowledge into practical application, which allowed us
to develop an innovative platform that provides a unique service to users.

The project perspective was to create a platform that promotes sharing economy and
sustainability by allowing users to upload and rent products to and from others. This
perspective was crucial in guiding the development of the platform and ensuring that it met
the needs of users. During the project, we learned the importance of effective project
management, including planning, communication, and coordination among team members.
The project required a considerable amount of collaboration and teamwork, which allowed
us to work efficiently and effectively towards a common goal.

The features developed for the RentNepal website project were essential in creating a user
friendly experience for users, including a secure login and registration system, product
upload and rental system, and review system.

Overall, the RentNepal website project was an opportunity to develop a comprehensive


platform that promotes sharing economy and sustainability while providing a unique
service to users. It allowed us to develop valuable skills in project management, teamwork,
and feature development that will be useful in future help.

6.2 Recommendations
There is a scope for further development in our project to a great extent.

• Firstly, we would be implementing an online payment system to facilitate transactions


between users. This will improve the overall user experience and reduce potential trust
issues associated with offline transactions.

• Secondly, to increase the user base and expand the market, we suggest implementing a
marketing strategy that targets potential users and promotes the benefits of the sharing
economy and sustainability.

18
• Thirdly, we will provide adding a messaging system to facilitate communication between
users and improve the rental experience.

• Furthermore, the platform can be developed into a mobile application, making it more
accessible to users and increasing the convenience of using the platform.

Overall, the RentNepal website project has significant potential for further development
and expansion, and we believe that implementing the above recommendations and future
scope will result in a successful and sustainable platform for peer-to-peer product rental.

Additionally, RentNepal can collaborate with other sharing economy platforms to offer
users a more comprehensive and integrated service. For example, the platform can partner
with ridesharing services (like pathao etc.) to offer rental products to passengers, or with
home-sharing platforms to offer rental products to hosts.

19
References
Ramesh Singh Saud, Bhupendra Singh Saud, Indra Chaudhary, “System Analysis And
Design”,Kec publishers and distributors(p).ltd,2020

IDR environmental services,”waste disposal”, https://www.idrenvironmental.com/non-


hazardouswaste-disposal

20
Appendix

Screenshots

Homepage:

21
Product section:

Register Page:

22

You might also like