Professional Documents
Culture Documents
Capstone Proposal
Capstone Proposal
Capstone Proposal
_______________
A Capstone Proposal
Presented to the
Faculty of CST 499 at
California State University, Monterey Bay
_______________
In Partial Fulfillment
of the Requirements for the Degree
Bachelor of Science
in
Computer Science
_______________
By
Cheuk On Yim
Matthew Stoney
Paola Torres
Wicaksa Munajat
Fall 2022
Copyright © 2022
By
Cheuk On Yim
Matthew Stoney
Paola Torres
Wicaksa Munajat
All Rights Reserved
i
OpenCommune
By
Cheuk On Yim
Matthew Stoney
Paola Torres
Wicaksa Munajat
The purpose of this project is to provide a web application for users that will allow them
to buy, sell, or trade their items. This online platform will allow lenders and borrowers to connect
with one another with the hopes of building a stronger community that is more aware of the
effects of spending and purchasing new items instead of borrowing or buying secondhand. The
main goal for this project is to decrease the amount of purchases made on new items which will
INTRODUCTION
The proposed project is a web application that will allow users to make and join private
or public groups where they can put their belongings up and allow other users to borrow them for
a certain period of time or trade their belongings outright. We have noticed that people, including
ourselves, purchase many items that might not be essential or needed. Purchasing items that one
does not need wastes time, money, and resources. During the pandemic, many people lost their
jobs and their main source of income. Thus, this made people more cognizant about where their
well. As the population grows, resources on this planet will deplete. We believe that it is
important to help play a role in helping the environment with the choices that we make. The
product we will build aims to promote reusability and sustainability of the environment by
creating a space where users can borrow and trade their belongings. Items and belongings can
range from different categories such as sporting equipment, handy everyday tools, and furniture.
By bringing users who want to sell, trade, or borrow items, we will create an environment
that promotes the values of community, sharing, and connection. All users will have ratings
attached to their name in order to show their credibility. This product aims to benefit lenders by
allowing them to make extra money by letting others borrow their items, borrowers by allowing
2
them to save money by borrowing items instead of purchasing them, and the environment by
reducing the amount of resources that will be used to manufacture new items.
The Environmental Protection Agency reports that in 2018, the amount of trash generated
in America totalled 292.4 million tons, averaging out to around five pounds of trash per person
per day (Environmental Protection Agency, 2022). The current state of consumer culture in
America demonstrates a high turnover rate in purchasing. This is due to the fact that many
products are designed to be disposable, or replaced through planned obsolescence. This has led
to the concept of a throw-away culture, where consumers tend to get rid of things before they are
defunct.
Solution: OpenCommune
While environmental issues often seem impossible to tackle, there are many small
measures that individuals can take in their everyday lives to help reduce their effect on the
environment. One such measure is to reduce the amount of waste that we collectively produce by
letting others borrow or keep their unused items. As a society, we pride ourselves on our
commitment to recycling our bottles and cans. OpenCommune proposes a similar commitment to
reuse of other items such as furniture, clothing, textbooks, household appliances, tools, and even
cars.
OpenCommune is a full-stack web application that allows users to form and join public
or private community groups where they can offer items up for others to borrow. It offers users
the ability to come together with people of similar interests in helping the environment, as well
3
as helping out each other. It will save users money as well as help to lessen the impact
Evidence of Need:
The evidence of throw-away culture can be seen in our everyday objects, from clothes to
cars. Producers make more money when people throw out their old items and purchase new
ones. This is seen in the fact that every year, clothing companies release new lineups, automakers
reveal the year’s new model, and Apple releases a new iPhone. None of these objects are very
different from the previous iterations, but people enjoy owning the latest new thing.
This tendency to throw away items has several environmental effects. First,
manufacturers are encouraged to produce more and newer products. High production generally
means a high carbon footprint. Second, disposable products are maxing out our landfills and
Goals
● Use Spring Boots, React, Node.JS, MySQL or similar framework to build interactive
frontend and backend.
● Build a user portal that displays joined groups, within each group there is a catalog
for items available within the group.
● An item is listed with options available for borrow, trade, and/or giveaway.
● Allow users to create groups. A user who creates a group will be the group admin of
the group.
● Join groups by invitations from group admins.
● Allow group admins to invite/delete users from a group.
ENVIRONMENTAL SCAN
According to Forbes, consumers are searching for more ways to rent and share items.
They are more concerned with having access to items than owning them (Morgan, 2019). A
quick search online reveals existing websites and applications which allow users to do just this.
app. One of the earlier examples of this concept comes from Peerby which was an app based in
the Netherlands. This app connected around 100,000 users in a single month and quickly
expanded to locations such as London, Berlin, and Belgium (Beardsley, 2015). Although our
website shares the idea of borrowing and selling items within a local network, it will have
features that both optimize and widen the breadth of use for users.
The underlying concept of our website will be similar in that users will be able to list
items to lend or sell. However, we will also include additional categories such as trade and
giveaway to provide users the ability to more accurately describe what they would like to do with
their items. As a result, users will be able to more accurately search for items based on the
aforementioned categories. This is something that current sites do not do well. For example,
sometimes when selecting an item, you will discover that it is actually for sale instead of for
5
borrowing. This can be frustrating for a user if they are looking for an item in a specific category.
This is not user friendly since the information is hidden and has to be searched for by the user.
Our website will help users with this. This modification will also benefit those that are listing
items by giving them clear definitions to indicate how they intend to contribute their item.
Our website will also be different in that users will be able to create and join communities
to share items. This will be in addition to being able to search by location and item type. The
intent of these communities is to provide users the ability to create smaller, closed groups with
people they are related to, such as neighbors, students in a school, friends/family. This will give
these groups a platform to more easily swap items with each other instead of advertising to the
general public. Current websites and applications do not seem to have this feature. Our website
will be the one stop place for trading, selling, renting, and/or giving away items.
6
Stakeholders
The primary stakeholders of this project are Wicaksa Munajat, Matthew Stoney, Paola
Torres, and Cheuk On Yim. These stakeholders are the developers of this project. Completion of
this project satisfies one of the graduation requirements for the Bachelor of Science degree
offered by CSU, Monterey Bay, which all of the stakeholders mentioned above are pursuing.
These stakeholders will develop this project in collaboration and complete this project by the end
Supporting Organization
CSU Monterey Bay is the primary supporting organization of this project. CSUMB
faculty who support this project, potentially contribute to the environmental benefit that this
project aims to achieve. Projects that are under guidance from faculty have a higher chance of
demonstrating the knowledge that this program offers to its students. CSUMB can exhibit
projects with excellent accomplishment to the public as proof that this program’s curriculum
enriches students’ software engineering skills. Projects can also be used as examples for future
students
External stakeholders
General public is one of the external stakeholders. On the user end, this application brings
financial benefit. It is a convenient alternative to obtain items and save money. As users
participate more by building communal networks on this platform, users and their connections
7
can be exposed to more money saving opportunities. This may encourage users to try out a new
hobby which requires much equipment such as camping. Users' chances of buying new items are
reduced, at the same time, they feel more financially encouraged to find a new hobby that may
improve their social lives. Therefore, hobby groups are another external stakeholders. In a macro
The environmental benefit that is brought by the participation of users could be enjoyed by our
NEGATIVE IMPACTS
As with all new products and services, it is important to analyze the negative impacts
OpenCommune might have on its users, especially to underprivileged groups. Two potential
negative impacts that have been identified are: the use and access to OpenCommune requires a
computer or smartphone and in order to exchange items meeting with strangers might be
required.
smartphone along with an internet connection. This negatively impacts the portion of the
population that does not have access to these. The impact is not in the sense that it causes these
individuals harm but rather it excludes them from participating in something that might be of
benefit to them simply because they do not have access to the aforementioned items. Individuals
that do not have a computer, smartphone, and/or internet connection usually are lower income
individuals or individuals that are not technology oriented. As previously mentioned, this
excludes a group that might benefit the most from the cost saving measures afforded by the
exchange the items they are borrowing/lending or selling. There is a potential for this to
negatively impact some users because there is an inherent risk with meeting with strangers.
There are safe practices that are already recommended to users when using things such as
Facebook marketplace like meeting in public places. Not all users will need to meet with
However, users that primarily search by location will most likely not know who the person they
are buying or borrowing from. The risk will be minimal but it is something that probabilistically
ETHICAL CONSIDERATIONS
Privacy is one of the foremost ethical concerns when building any multi-user application.
OpenCommune should take measures to protect the privacy of our user’s personal information
by first limiting the data that OpenCommune collects to what is strictly necessary for its primary
purpose. The data that is collected will be freely visible to the user so that users can review, edit,
or delete their personal information at any time. Certain sensitive information is required for
each transaction, such as name, email address, and possibly payment information.
OpenCommune should keep user information protected through use of encryption, user
for the exchange of goods. However, not all goods are considered ethical to trade, whether they
have been illegally obtained or are legally barred from sale or possession. For example,
controlled substances, live animals, human trafficking, and any other illegal and/or socially
reprehensible subjects should be forbidden. The application should take into consideration the
9
nature of the goods being exchanged, and whether or not any form of currency is part of the
transaction. OpenCommune should not be a platform for the exchange of illegal or otherwise
unethical goods.
users help each other and the environment. As such, it should follow the path of maximum
positive impact while also having minimum negative impact. The design of each aspect of
OpenCommune should take into consideration ways to improve the user experience and quality
of life. This also includes accessibility. The application should strive to be inclusive to as many
LEGAL CONSIDERATIONS
One legal consideration to take into account when running an online borrowing, selling,
and trading platform is correctly handling a user’s private information. A concern from the user’s
end could be concerns about selling their information to third parties without consent. A concern
from our end could be not having enough security measures in order to prevent data breaches or
leaks from happening. Consumers are concerned and protective of their data and are quick to
realize when their information is being mishandled. According to a KMPG study from 2016,
55% of consumers surveyed around the world said they are against buying things online due to
privacy concerns (Mlada, 2021). In order to reassure users that their data is being protected, we
will try to implement measures to be more transparent with how their data is being collected such
Another legal consideration to take into account is the threat of crime that can occur
when two users meet up to undergo a transaction. There are countless stories of buyers and
10
sellers meeting and something going awry. This is due to the fact that when you are dealing with
a stranger, the risk of something bad occuring increases. When something bad does occur, police
will be notified and this will be bad for the users of the application and all parties involved. In
order to lower the chances of any crime occurring, we will put an information page on how to
safely meet up in order to have a safe transaction such as meeting at a busy place or by a police
station. This will ensure that users are mindful when meeting with other users and can keep both
These are the main legal considerations to be aware of when creating this application.
With regards to the users, we want to make sure that their privacy and information are handled
properly. This will give them more confidence in our product and give them more confidence in
using the application. In addition, we want to make sure that their physical safety is brought to
our attention. We will do everything in our power in order to make sure that users are aware
when they are meeting with one another to complete a transaction and aware of their safety.
11
TIMELINE
The timeline for this project (Figure 1) is located below. It is based on the waterfall
software development cycle. This requires our group to establish requirements early on. We will
create a concrete plan of what we need and do our project in phases. Each phase will have
deliverables before moving on to the next phase. This time line will also help keep us on track in
RESOURCES
The resources required for this project include a laptop, and softwares — Discord for
communication, mySQL Workbench for backend development, text editor of choice for
MILESTONES
The major goals toward completing the proposed project are outlined in
Figure 1. This process will begin with outlining a proposed database schema. After outlining the
database schema, we will create the database using mySQL and input test data. After this is
completed, backend work will begin. This will involve creating user stories for admin and users.
Upon completion, we will begin creating REST API Endpoints for each story. Next, we will
begin creating the front end portion using React. After that is finished, we will be testing our
application and debugging it for errors. In addition, we will have users test the product. After
finishing this portion, we will work on any extra issues that we have and prepare for the
At this time, there are no foreseeable risks that will hinder the completion of this project.
Each step in the completion of the website is a dependency for the next step. Testing and
debugging is dependent on the completion of the frontend, backend, and database steps. The
front end portion of the project is dependent on the backend being complete. The backend of the
project is dependent on the database being properly configured and complete. Since each part is
dependent on the next, it is imperative that each major part of the project is completed in a timely
manner according to the timeline. This will prevent the whole project from falling behind. If this
were to happen, this risk will develop and potentially affect the completion of the project.
FINAL DELIVERABLES
The final deliverable for this capstone project is a fully-functional web application that
serves the major purposes outlined above in this specification document. This includes a
14
database model, a backend server that exposes REST API endpoints, and a frontend web page
The web application will be tested by friends and family. The website’s URL will be
given to each participant along with a checklist of items to complete while using the website.
The website will be available through Replit or a similar site. Initially there will be items and
user accounts in the database that we will place as a starting point. The checklist to complete will
consist of the following base components: add an item for one of the categories (trade, sale,
lend/borrow), browse through the available items, create a group or network to share, add
existing users to the group, purchase, borrow, or trade an item for one of the categories
aforementioned. If each participant is able to complete these tasks, we will consider the tests
successful. We will also ask each user to fill out an exit survey about their experience while
using the website. The questions on the survey will include the following. How easy was it to
navigate the website? Did you find any particular task from the checklist difficult to complete?
Were you unable to complete any task? How likely are you to use this website? Are there any
comments you would like to include about the website in general? We will modify and correct
the website based on findings from the tasks lists and surveys.
This project will use MySQL for our database. Java Spring Boot will be used to interact
with the database. The main operations between them are Create, Read, Update, and Delete.
Hence, this framework will sufficiently support the essential functionality of this application.
15
Although Java Spring Boot is our first candidate, we might switch to another backend framework
if implementation with other frameworks is more efficient for our development process. Lastly,
we will use React framework for the frontend before moving to the last major stage, testing and
debugging. For testing purposes, we will leverage tools to cover unit testing, API testing, and
end-to-end testing. If we stick with Java Spring Boot with React, we will use JUnit, Postman,
The development of this project will begin with designing entities and attributes. Our
team will examine the roles of our users. User features and functionality will be oriented around
UI and UX: What role does a user play in a group (group admin or a group member)? What can
different roles do in a group? What information do they need for their profile? How should
information be displayed? With continuous evaluation of these questions, we will gain crucial
insight toward moving the development process along, as well as making enhancements along
the way.
16
REFERENCE
Beardsley, E. (2015). Why buy when you can borrow? App connects people and stuff. NPR.
Retrieved from
https://www.npr.org/sections/alltechconsidered/2015/01/02/374184584/why-buy-when-y
ou-can-borrow-app-connects-people-and-stuff
Environmental Protection Agency. (2022). National Overview: Facts and Figures on Materials,
Wastes and Recycling. EPA. National Overview: Facts and Figures on Materials, Wastes
and Recycling | US EPA
Morgan, B. (2019). The future of stuff is shared or rented. Forbes. Retrieved from
https://www.forbes.com/sites/blakemorgan/2019/10/14/the-future-of-stuff-is-shared-or-re
nted/?sh=30b0d1273a40
Mlada , P. (2021). Privacy Concerns Stop Customers from Buying. Openli ApS. Retrieved from
https://openli.com/blog/privacy-concerns