Professional Documents
Culture Documents
_______________
By
Cheuk On Yim
Matthew Stoney
Paola Torres
Wicaksa Munajat
_______________
The main goal for this project is to create an application that promotes reusability and
sustainability. We believe this will decrease the amount of new item purchases which, in turn,
will save users money and reduce the usage of finite resources. Due to the growing population
and the finite resources we have on the planet, it is important to help sustain the environment
with the choices that we make. This application will allow users to create and join private and
public groups where they can list their items to allow other users to borrow or trade their items.
2
TABLE OF CONTENTS
Introduction
Feasibility Discussion
Future Enhancement............................................................................................................7
Ethical Considerations.........................................................................................................7
Legal Considerations...........................................................................................................8
Platform...............................................................................................................................10
Major Functions...................................................................................................................10
Timeline..............................................................................................................................13
Budget/Resource.................................................................................................................14
Final Implementation..........................................................................................................14
Discussion
Project Design…………………………………………………………………………….16
3
Reference.......................................................................................................................................17
Appendix A....................................................................................................................................18
Appendix B………………………………………………………………………………………19
Appendix C………………………………………………………………………………………23
4
INTRODUCTION
The proposed project, OpenCommune, is a web application that will allow users to create
and join private or public groups where they can list their belongings and allow other users to
borrow or trade their belongings. We have noticed that people, including ourselves, purchase
many items that might not be essential or needed long term. Purchasing items that one will not
use more than once 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 of where their
money was spent. We believe that it is important to play a role in helping the environment with
the choices that we make. Our web application aims to promote reusability and sustainability of
the environment by creating a space where users can borrow and trade their belongings ranging
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. Our application will be made
available to the general public, however, during the initial stage, we will focus on small
communities such as students at CSUMB. 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 them to save money by
borrowing items instead of purchasing them, and the environment by reducing the amount of
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
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.
6
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, renting, and/or giving away items.
Stakeholders
The general public is the main stakeholder of this project. 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 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
footprint on individuals and communities level. This also brings our environment as an external
stakeholder. The environmental benefit that is brought by the participation of users could be
Other stakeholders are the authors of the project and CSUMB. These stakeholders will
benefit academically. The former will gain ranges of software engineering skills related to web
application and fulfill graduation requirements. The latter may use this project as future reference
OpenCommune has the potential to live long term if it acquires enough of a user base due
to its sustainability objective. Keeping this in mind, initially we will make the web application
the web application will include an expansion to the general public, addition of messaging within
the application to facilitate transactions, and an expansion to include the sale of items (not just
Another area for future work is the expansion of the categories of items available to
borrow. One of the original ideas was to provide users to lend and borrow their car or truck. The
impetus for this comes from the common situation that college students face every year: having
to move their furniture and possessions to a new living place. This is a common scenario that our
platform would endeavor to solve. However we would need to do more research into any legal
One additional functionality that should be implemented is the ability for users to post
requests for items. Currently, users can post items they wish to make available to others. But
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.
8
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
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,
9
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
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.
10
DESIGN REQUIREMENT/USABILITY TESTING
Platform
For this project, many different platforms were used. Most of these platforms were used
because the team is familiar with the technologies and have used them throughout the CSUMB
curriculum. First, this project used MySQL as the main platform for the database. It is simple to
Second, Node.js/Express were used to interact with the database on the backend. This
was chosen due to its short learning curve which leads to faster development, the ability to use
JavaScript for frontend and backend which cuts the use of an extra tech stack, and the ability to
use the Node Package Manager which allows developers the ability to use and download code
Third, we used the React framework for the frontend. This was mainly used because it
has a great way of creating components for web applications. Since repeating code is not a good
practice, the ability to create components, such as a nav bar, and reusing those components in
Major Functions
The main purpose of this application is allowing users to post, borrow, sell, and trade
items within different networks. When the user first goes to the website, they will be taken to the
homepage and will show them a list of items that are currently being put up for rent, trade, or
Once logged in, the user will be redirected to the user home page which will show a list
of networks that are currently available. In addition, the user is able to create his or her own
11
network. They will also be able to click on the different networks and see a list of items up on the
site.
From here, they will be able to rent or buy depending on what they choose to do.
Build a user portal that displays joined groups, within each group there is a catalog for items.
Below (Figure 1.0) is a simple, rough sketch of the functionalities that the user is able to do on
the site.
Figure 1.0 - Simple user flow diagram when using the site.
The web application will be tested by friends and family. The testers will be given the
developers laptops/computers where the website’s URL will be given along with a checklist of
items to complete while using the website. Initially there will be items and user accounts in the
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
12
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
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
Usability Testing/Evaluation
We set up a testing environment in person. Since our product was not deployed online,
we had the tester come and test our application using our local machine. During the testing, we
observed and communicated with the user while they gave us feedback as they were testing the
product. The feedback that they gave us was noted in order to further improve our project before
We sent a survey with the list of items to complete prior to testing, so the tester has
enough preparation beforehand. Our intention of sending the survey early was to allow the tester
to understand our instructions and to raise any questions that they might have prior to the testing.
After the testing, we had the tester fill out a short questionnaire about their experience
during the testing. The questionnaire will be in the appendix section of the paper. In addition, we
had a meeting with the tester and communicated on what improvements needed to be made.
13
FINAL DISCUSSION/REFLECTION
Timeline
The timeline for this project (Figure 2.0) is located below. It is based on the waterfall
software development cycle. There was no significant delay on each stage. We were able to
follow this timeline progressing. There were occasions that we worked across all the stages. This
was because some features of our application require revisiting most of the tasks listed in the
timeline to implement.
Figure 2.0
14
Budget/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
programming, and Github for code management. All of the resources chosen for this project are
Final Implementation
We used mySQL for our database. We began designing our database in the schema design
tool in MySQL Workbench to generate a .sql script. After this was completed, we picked
Node.JS as our backend framework and created a basic CRUD route for all entities followed by
testing using Postman. An important object relational mapper library to support interaction with
our database we used is Sequelize. Upon completion, we turned our focus on pen and paper to
sketch out the essential elements of frontend. Following with what we have on sketch (figure
1.0), we developed our frontend (Client side, Figure 3.0 ) using ReactJS framework and used
One of the issues that we encountered during the implementation process was not being
able to show items in a specific network. This was due to the fact that we did not have a column
for network_id represented in the items table. In order to fix this, we had to reconfigure the
database schema in order to show that change. After adding that column to the table, we were
able to easily pull data from the network and items table in order to show the items that were in
When initially planning the concept of the website we had the following ideas in mind as
targets for the functionality: users were able to borrow and rent items, users were able to create
groups, users were able to register/log in to their account, users were able to join groups, and
The accomplishments of the website that we were able to build were very close to these
initial ideas. A user was able to create an account and then log in with that account, users were
able to borrow items, users were able to create groups which we called networks, and users were
able to edit a posted item if they were the ones that initially listed it.
Project Design
The goal for the design of the website was to create a user interface that was minimalistic
and intuitive. There are key elements that tie the entire website together such as the
OpenCommune banner and menu that appear in all the webpages. This can be observed in the
website images included (Appendix B, Figure 4.0 - 4.5). We designed the home page with
engagement in mind to encourage users to use the site. This is why a quick description of
16
OpenCommune is included as well as a showcase of some of the items in the site (Appendix B,
Figure 4.0). The registration and login pages look visually similar but each serve their separate
purpose (Appendix B, Figure 4.1- Figure 4.2). The network page and item list page are both
organized in a table form with alternating colors per row. This organization is meant to present
the information in a cohesive manner that is easy to navigate (Appendix B, Figure 4.3 - Figure
4.4). The single item view page isolates the selected item and presents its information at the
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
18
Appendix A
Items to Test:
SignUp/Login
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.
Closing Survey:
Did you find any particular task from the checklist difficult to complete?
Are there any comments you would like to include about the website in general?
19
Appendix B
Figure 4.0
20
Figure 4.1
Figure 4.2
21
Figure 4.3
Figure 4.4
22
Figure 4.5
23
Appendix C
All team members worked on both the back and the front end code for the website. The backend
work was divided by routes/tables. The frontend was divided by webpages to complete.