Thrift_Store (1)
Thrift_Store (1)
Submitted by:
Nabin Paudel, 211523
Sanjib Shah, 211533
Sunil Nath, 211443
Date:
22 November 2024
NEPAL COLLEGE OF
INFORMATION TECHNOLOGY
Balkumari, Lalitpur, Nepal
Abstract
RePurpose is a web-application designed to address the growing challenges of waste and over-
consumption by offering an easy platform for people to give new life to items like clothes,
children’s toys, books and other household goods that often lose their usefulness too quickly.
The platform allows users to donate unwanted items or discover items they need, promoting
a more sustainable and conscious approach to consumption while helping reduce unnecessary
waste. Built with ReactJS, Node.js, and Express.js, the application features a smart recommen-
dation system that matches users with items they are likely to need, making it easier for them to
find useful things within the community. It also includes a chat feature for direct communica-
tion and a rewards program that encourages users to donate or engage in eco-friendly practices
by earning points. These reward points not only motivate users to stay engaged but also foster a
culture of generosity and sustainability. Beyond reducing waste, RePurpose ensures that useful
items are accessible to those in need, creating a more inclusive and supportive community. The
platform encourages active participation in sustainability, helping users make a positive impact
by sharing and repurposing goods. With a simple design and a focus on social responsibility,
RePurpose empowers individuals to be part of a larger movement toward a more connected,
eco-conscious world, where small, everyday actions contribute to meaningful environmental
change.
Keywords: Web application, Environmental impact, sustainability
Contents
Abstract
1 Introduction 1
1.1 Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Project Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Significance of the study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 Literature Review 5
3.1 Environmental Challenges in the Textile Industry . . . . . . . . . . . . . . . . 5
3.2 Environmental Benefits of Clothing Reuse . . . . . . . . . . . . . . . . . . . . 5
3.3 Consumer Participation in Clothing Take-Back Programs . . . . . . . . . . . . 5
3.4 Digital Platforms and the Circular Economy . . . . . . . . . . . . . . . . . . . 6
4 Methodology 7
4.1 Software Development Life Cycle . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2 Technical Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2.1 Use Case Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2.2 Document Schema Diagram . . . . . . . . . . . . . . . . . . . . . . . 10
4.2.3 Document Schema Description . . . . . . . . . . . . . . . . . . . . . . 11
4.2.4 System Sequence Diagram . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2.5 Sequence Diagram Description . . . . . . . . . . . . . . . . . . . . . . 13
4.3 TOOLS TO BE USED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3.1 VS Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3.2 Git and GitHub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3.3 Postman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3.4 Discord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3.5 Figma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3.6 Jupyter NoteBook . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.4 TECHNOLOGIES TO BE USED . . . . . . . . . . . . . . . . . . . . . . . . 15
4.4.1 Tailwind CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.4.2 Next.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.4.3 Node.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.4.4 Express.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.4.5 MongoDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.4.6 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5 Deliverable/Output 16
References 20
List of Figures
1 Incremental Model of Software Engineering . . . . . . . . . . . . . . . . . . . 7
2 Use Case Diagram of RePurpose . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Schema Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4 Sequence Diagram of RePurpose . . . . . . . . . . . . . . . . . . . . . . . . . 12
5 Gantt Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6 Gantt Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
List of Tables
1 Division of tasks among project team members . . . . . . . . . . . . . . . . . 17
2 Time Schedule for the Project . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1 Introduction
The proposed thrift store web application is a sustainable and inclusive platform designed to
promote the reuse of goods in Nepal, reducing waste and carbon footprints. Built using React
with reward systems, it connects seller and store seamlessly, creating economic opportunities
for low-income individuals while encouraging affordable, eco-friendly shopping. By fostering
a circular economy, this project aligns with global sustainability goals, addressing environmen-
tal concerns and supporting socio-economic empowerment within local communities.
Overconsumption and waste are major environmental challenges, items like clothes, children’s
toys and books are often discarded too soon. These still-usable goods contribute to landfill
overflow and resource depletion. Despite growing awareness of sustainability, people often
lack convenient ways to repurpose or donate items and many individuals who could benefit
from these goods struggle to access them.
In Nepal, where economic and environmental challenges are particularly significant, there is a
lack of accessible platforms that connect people who want to donate items with those in need.
Traditional donation methods can be inefficient and inconvenient.
RePurpose addresses these issues by offering a user-friendly online platform where individuals
can donate or find items they can use. Through features like a smart recommendation system,
chat functionality, and rewards for donations.
1
1.2 Project Objectives
To address the challenges outlined in the problem statement for RePurpose, the platform is
introduced with the following objectives.
2
1.3 Significance of the study
The development of RePurpose aims to bridge the gap between existing stores and individuals
with unused, reusable items, creating a seamless connection between potential donors and the
marketplace. The platform serves as a technological intervention to enhance sustainability and
build stronger resource-sharing networks. Its key significances are as follows:
This platform represents a transformative step in addressing environmental and logistical chal-
lenges, bridging the gap between sellers, stores, and communities through innovative design
and technology.
This project aims to develop a platform that acts as a bridge between thrift stores and potential
sellers, focusing on promoting sustainability through the reuse of items like clothes, toys, and
books. One of the key features of the platform is a reward point system based on a mathemati-
cal model, which motivates users to actively participate and contribute items.
3
2 Scope and Limitation
2.1 Scope
i. The platform will serve as a central point for connecting individuals looking to donate or
sell reusable items with thrift stores, simplifying the process and promoting sustainabil-
ity.
ii. A reward point system, powered by a mathematical model, will be implemented to cal-
culate and allocate points to contributors, making the system engaging and rewarding for
users.
iii. The project emphasizes reducing waste by giving a new purpose to unused items, ulti-
mately contributing to environmental conservation and resource efficiency.
2.2 Limitations
i. In the initial phase, the platform focuses more on facilitating sellers for thrift stores but
doesn’t provide much functionality for buyers. This gap will be addressed in future
updates.
ii. The project will initially target thrift stores in select urban areas, limiting its scope geo-
graphically at the start.
iii. Users will need access to digital devices and an internet connection, along with basic
digital literacy, which might limit participation from certain groups.
This project, while starting small, has the potential to expand its impact, addressing these limi-
tations in future versions and creating a more inclusive and effective system.
4
3 Literature Review
The environmental and societal impacts of the textile industry and efforts to mitigate these
challenges have been widely explored. This section synthesizes findings from three research
papers to examine environmental challenges, sustainable practices, and consumer behavior in
the context of the textile industry.
The textile industry is among the most ecologically damaging sectors globally, as highlighted
by A. K. Roy Choudhury [1]. The industry’s significant environmental footprint stems from the
use of harmful chemicals, excessive water and energy consumption, and the generation of large
quantities of waste. Life Cycle Assessment (LCA) has emerged as a robust methodology for
systematically evaluating these impacts across the entire product lifecycle. By adopting LCA,
stakeholders can pinpoint critical areas for intervention and sustainability improvement.
A study by McKie, Saez de Tejada Cuenca, and Agrawal [3] explores the effectiveness of
retailer-led take-back initiatives. The authors reveal that incentives such as financial rewards
and clear communication about reuse or recycling strategies significantly enhance consumer
participation. The study also emphasizes that the success of take-back programs depends on
balancing reward levels with operational costs, ensuring convenience, and addressing consumer
concerns about the programs’ transparency and purpose.
5
3.4 Digital Platforms and the Circular Economy
Digital platforms like Poshmark and Depop demonstrate the potential of technology in fostering
a circular economy. By enabling the resale of pre-owned clothing, these platforms extend
garment lifecycles, reduce textile waste, and encourage sustainable consumption patterns. They
serve as key players in normalizing second-hand clothing as an attractive and convenient option,
further promoting sustainable consumption practices.
6
4 Methodology
We have adopted the following methodologies for a smooth development process to meet the
requirements of the project.
For the software development process of our project, we’ve opted for the Incremental Model,
which involves building the system incrementally over multiple iterations. Each iteration en-
compasses the Analysis, Design, Coding and Testing phases.
In the first iteration, Our primary focus will be on developing essential features including user
authorization and authentication. Additionally, we will introduce seller forms, enabling sellers
to submit their profile and product details for approval. A seller dashboard will also be de-
veloped, allowing sellers to manage their submissions and monitor the status of their listings.
These core components lay the foundation of our platform’s functionality.
The second iteration will build on the features developed in the first iteration and will prioritize
the addition of admin functionalities to manage and oversee the platform’s operations. This will
include the development of an admin dashboard, which will enable administrators to review and
approve seller submissions, manage user accounts, and moderate platform activities.
7
Subsequent iterations will introduce additional features such as reward points calculation for
products and more, providing a step-by-step expansion of the platform’s capabilities.
8
4.2 Technical Description
A use case diagram is a visual representation of the interactions between actors (In our case:
Seller, Admin and Visitors and a system under consideration. It shows the different use cases
or functionalities provided by the system and the relationships between the actors and use
cases.The application use case, as illustrated in Figure 4.
9
4.2.2 Document Schema Diagram
10
4.2.3 Document Schema Description
Users:
The Users entity represents individuals who have registered on the platform. It includes at-
tributes such as id, firstName, lastName, email, password, profileImage, phoneNumber, role,
isEmailVerified, refreshToken, and totalRewardPoints. Each user can create or own multiple
products, forming a one-to-many relationship with the Products entity. Additionally, users can
act as sellers, forming a one-to-one relationship with the Sellers entity.
Sellers:
The Sellers entity represents users who have been approved to sell items on the platform. It
includes attributes such as id, user, fullName, email, phoneNumber, address, status, passport-
SizePhoto, and packages. Each seller is linked to a specific user via a one-to-one relationship
with the Users entity. Sellers can also create multiple packages, establishing a one-to-many
relationship with the Packages entity.
Packages:
The Packages entity stores details about collections of items being shipped or listed by sellers.
It includes attributes such as id, seller, name, description, images, shippingMethod, packa-
geNumber, status, and reviewedBy. Each package is associated with a specific seller, forming
a many-to-one relationship with the Sellers entity. Additionally, packages are reviewed by an
admin, creating a many-to-one relationship with the Users entity.
Categories:
The Categories entity represents classifications for products on the platform. It includes at-
tributes such as id, name, slug, parentCategory, and isActive. Categories can have hierarchi-
cal structures, allowing each category to optionally have a parent, forming a self-referencing
many-to-one relationship. Furthermore, products can belong to multiple categories, creating a
many-to-many relationship with the Products entity.
Products:
The Products entity represents items listed on the platform by users. It includes attributes such
as id, name, slug, description, price, images, categories, attributes, condition, code, seller,
postedBy, and status. Each product is posted by a specific user, forming a many-to-one rela-
tionship with the Users entity. Products are also associated with a specific seller, creating a
many-to-one relationship with the Sellers entity. Additionally, products can belong to multiple
categories, forming a many-to-many relationship with the Categories entity.
11
4.2.4 System Sequence Diagram
12
4.2.5 Sequence Diagram Description
The sequence diagram illustrates the interaction between the Seller, System, Database, and
Admin during the workflow of package request, approval, and product addition. The process is
divided into the following phases:
i. Authentication: The seller submits a login request to the system, which validates the
credentials by interacting with the database. Upon successful validation, the system con-
firms the login to the seller.
ii. Package Request Submission: After authentication, the seller submits a package request.
The system saves the package details in the database and confirms the submission.
iii. Approval Process: The admin reviews the submitted package request and approves it.
The system updates the package’s status to ”Approved” in the database and confirms the
approval to the admin.
iv. Product Addition: The admin adds products to the approved package. The system saves
the product details in the database and notifies the admin of the successful addition.
13
4.3 TOOLS TO BE USED
4.3.1 VS Code
Visual Studio Code will be used as the primary code editor for the project, offering features
like syntax highlighting, debugging, and extensions to ensure efficient coding and development
workflows.
Git will be used for version control, while GitHub will facilitate repository management and
collaboration, allowing for streamlined teamwork and efficient code tracking throughout the
project’s lifecycle.
4.3.3 Postman
Postman will be used to test and debug APIs, ensuring endpoints for authentication and product
management work as intended.
4.3.4 Discord
Discord will be utilized for team communication, enabling real-time discussions, updates, and
coordination among team members.
4.3.5 Figma
Figma will be used to design user interfaces and create interactive prototypes. It will facilitate
the visualization of the platform’s layout and ensure a user-friendly design through collabora-
tion and feedback.
14
4.4 TECHNOLOGIES TO BE USED
Tailwind CSS will be implemented to style the platform’s interface efficiently, enabling respon-
sive and modern UI designs with minimal effort.
4.4.2 Next.js
Next.js will be utilized to build the front-end of the platform, offering server-side rendering and
optimized performance for a seamless user experience.
4.4.3 Node.js
Node.js will be used as server-side runtime environment to build the backend of the system. It
is an open-source runtime environment built on Chrome’s V8 JavaScript engine.
4.4.4 Express.js
Express.js commonly referred to as Express, is a minimal and flexible web application frame-
work for Node.js. Express.js will be used to develop Rest API for the system.
4.4.5 MongoDB
MongoDB will serve as the database for storing and managing platform data, including users,
products, and orders, ensuring scalability and reliability.
4.4.6 Python
15
5 Deliverable/Output
i. Responsive and Platform-Independent Web Application: Accessible across devices,
bridging thrift stores and individuals with reusable items.
ii. Reward Point System: Calculates points based on item quality and type to encourage
consistent seller participation.
iii. Integrated Communication: Chat feature for smooth interaction between sellers and
thrift store administrators.
iv. Recommendation System: Optimizes item distribution to stores based on demand, en-
hancing efficiency.
vi. Data-Driven Monitoring: Provides insights for administrators to track platform activity,
identify inconsistencies, and ensure operational efficiency.
vii. Sustainability Focus: Promotes trust and collaboration, creating an eco-friendly and
community-driven redistribution network.
16
6 Project Task and Time schedule
The project time schedule is designed, considering the requirements and constraints involved.
The project schedule is designed such that the Requirement Analysis phase is given more im-
portance so that we don’t deviate from the requirement of the project. The major task division
among the team members is mentioned in Table 1.
17
6.1 Gantt Chart
The Gantt chart illustrate the sequential phases in the development of the RePurpose system
using an incremental model. Starting with an intensive requirement analysis, the project will
progress through system design and coding, incorporating an iterative testing and debugging
process for individual modules. Following the coding phase, an extensive round of overall
testing and debugging will be conducted to ensure system coherence. The final phase will
involve comprehensive documentation. This incremental approach will allow for a systematic
evolution, ensuring a robust and well-documented RePurpose system.
18
Figure 6: Gantt Chart
19
References
[1] A. K. R. Choudhury, “Environmental impacts of the textile industry and its assessment
through life cycle assessment,” Roadmap to Sustainable Textiles and Clothing, vol. 10,
no. 1, pp. 1–39, 2014.
[2] S. I. O. Laura Farrant and A. Wangel, “Environmental benefits from reusing clothes,” The
International Journal of Life Cycle Assessment, vol. 15, no. 4, pp. 726–736, 2010.
[3] A. S. d. T. C. Erin C. McKie and V. Agrawal, “Does less result in more? the role of
information and rewards in take-back programs for clothing,” Journal of Rewards in Take-
back Programs, vol. 12, no. 2, pp. 45–62, 2023.
20