Post on 09-Jul-2020
Running head: LAB 1 – LOCALLINK PRODUCT DESCRIPTION 1
Lab 1 – LocalLink Product Description
Benjamin Velazquez
Old Dominion University
CS 411W
Professor James Brunelle
26 January 2020
Version 2
Running head: LAB 1 – LOCALLINK PRODUCT DESCRIPTION 2
Table of Contents
1. Introduction 3
2. LocalLink Product Description 4
2.1 Key Product Features and Capabilities 5
2.2 Major Components 9
3. Identification of Case Study 10
4. LocalLink Product Prototype Description 10
4.1 Prototype Architecture (Hardware/Software) 11
4.2 Prototype Features and Capabilities 11
4.3 Prototype Development Challenges 13
5. Glossary 14
6. References 15
List of Figures
Figure 1 - MFCD 5
Table 1 – Feature availability of LocalLink prototype and real-world product 5
Running head: LAB 1 – LOCALLINK PRODUCT DESCRIPTION 3
Lab 1 – LocalLink Product Description
1. Introduction
Household tasks such as cleaning and lawncare occupy a large portion of free
time for the average American. The average U.S. household spends an average of
71 hours per month performing cleaning and basic household maintenance tasks
(Bureau of Labor Statistics). Completing these tasks in a timely manner is a priority
in many neighborhoods throughout the country; many HOAs and local governments
impose penalties on households with poorly maintained houses and lawns such as
fines and legal action (ECHO). Specific groups of people may find themselves
unable to keep up with their weekly list of household tasks. Individuals that spend
more time at work than at home due to rising work hours lack enough time complete
their home cleaning (Whillans et al., 2017). Likewise, seniors and the physically
disabled may suffer mobility issues that prevent them from performing tasks like
taking out trash or raking leaves. These groups of individuals have the option of
outsourcing their tasks to others in exchange for payment. A strong demographic of
people willing to work small house tasks for side income exists (Dixon), but finding
these individuals locally may be a challenge. Existing internet-based platforms allow
searching for local jobs and workers, but these platforms require registering with
personal information just to view job listings. Additionally, the lack of proper
background checking leaves individuals with tasks to outsource uneasy about hiring
workers from said platforms (Haaland).
Running head: LAB 1 – LOCALLINK PRODUCT DESCRIPTION 4
Individuals with household tasks to outsource lack a secure platform to find
individuals willing to work and require a solution tailored to their situation. This
solution is ideally built to reduce unease involving background, qualification, and
payment. This includes connecting individuals in a neighborhood wide scope for
cost, comfort and familiarity reasons. Additionally, the solution must include a means
of allowing job posters to verify the identity/background of potential job workers. The
solution must provide job posters and job workers with the means to communicate
while still withholding personal information such as location until it is necessary. The
solution must also incorporate a secure means of payment to ensure that funds are
transferred between both parties in a safe and timely manner.
LocalLink is a solution built to connect job posters and job workers together
within a neighborhood-wide scope. It’s expected functions will allow job posters and
workers to post their jobs and services, connect and communicate with each other,
and navigate to the job site, and pay each other in a safe and secure manner.
2. LocalLink Product Description
LocalLink is a web and mobile-based platform that allows users to advertise and
search jobs and services within an adjustable radius limited to a neighborhood-wide
scale. Users may browse jobs and services without the need to sign up for an
account, and full names and addresses are withheld until necessary to protect the
information of each user. Payment is handled through secure third-party APIs, and
job posters can request users who have completed a background check to ease
worries about workers they hire. LocalLink will focus on connecting neighborhood
Running head: LAB 1 – LOCALLINK PRODUCT DESCRIPTION 5
individuals with measures in place to discourage contractors and large companies
from using the platform to advertise themselves.
2.1 Key Product Features and Capabilities
Every guest user will have the ability to browse posted jobs and services on
LocalLink without the need to log in or make an account. They may also read
reviews for job posters and job workers without an account. Users with an account
may use their account to fulfill the roles of both a job poster and a job worker with no
limitation.
Figure 1 – MFCD
Running head: LAB 1 – LOCALLINK PRODUCT DESCRIPTION 6
2.1.1 Server/Client Architecture
LocalLink’s GUI is designed with the two user roles of job poster and job worker
in mind. Each role will have a UI to post and view jobs and services posted by other
users. Users may filter their searches by parameters such as distance,
cost/payment, and poster/worker rating to further refine their search. Search results
may be saved for viewing later.
LocalLink has an optional matching algorithm for both job posters and job
workers. The system attempts to match job posters with up to three relevant workers
when they begin their search given that they’ve search said job category once
before or have had work done for them in that category previously. These matches
are shown inline in the search results list. Job workers may opt in to be matched with
job based on several settable preferences that match their skillset and can ask to
receive mobile app alerts about newly matched jobs. These matched jobs are
displayed in their own UI.
Users have the option of viewing a job poster or job worker’s profile information.
Each user may adjust how much information they wish to share about themselves
on their profiles. Profiles containing inappropriate information are reportable by other
users.
Users may also view ratings and reviews for each user. This action does not
require an account and is accessible through a user’s job/service listing or profile.
Users who have accepted or have been accepted by a job poster or worker for a
job may begin communication with them through LocalLink’s encrypted chat. The
chat is asynchronous, allowing users to drop in and out to leave messages at any
Running head: LAB 1 – LOCALLINK PRODUCT DESCRIPTION 7
time up until the job’s completion. Users may report inappropriate content posted in
chat to administrators.
Job posters may optionally request that the worker upload a photograph of the
completed job for approval by the job poster. The worker must photograph the
finished job site with their phone’s camera and upload them to LocalLink’s server.
Once approved by the job poster, the job is considered complete and payment
between the two is processed.
LocalLink utilizes Google Maps API to navigate the job worker to the work site.
The worker is given a general area of where their destination will be, with the
marked area getting smaller and more accurate as the worker gets closer. The
general area view is a measure to keep knowledge of the job poster’s information
(the poster’s address in this case) hidden until necessary.
2.1.2 Database
Information for every user is stored in the database as a Customer entity. This
includes name, address, email, and phone number, as well as an ID unique to each
user account. Information for the job worker role is stored as a Worker entity, a subset
of Customer. This includes work hour availability, preferred work radius, and workable
job categories. IDs of completed jobs are also stored in this entity.
Every job is stored in the database as a Job entity in the database. This entity
contains an ID unique to the job, the date it was posted, the ID of the job poster, GPS
coordinates of the job site, advertised radius, and ID of the encrypted chat instance
assigned to it, and job availability hours.
Running head: LAB 1 – LOCALLINK PRODUCT DESCRIPTION 8
Chats for each job are given a unique ID number. They are stored in the
database as a Chat entity that contains the chat ID, corresponding job ID, message
timestamps as well as message text.
The database contains the corresponding address of uploaded job completion
photographs in the job_img entity, as well as the uploader ID, job ID, and whether the
image was a before or after image. These addresses point to an internal server where
the images are stored.
Reviews and ratings are stored in the database as a Review entity. They are a
subset of the customer entity. The review entity contains the ID of the reviewing
customer, the ID of the customer being reviewed, the job ID and date that caused the
review, a bool deciding if the reviewer was a job worker or poster, and the review rating
and text.
Payment methods are stored on the third party Paypal and Venmo APIs used to
process payments. The corresponding user tokens are associated with the user’s
corresponding Customer entity in the database.
2.1.3 Administrative Interface
Administrative users will have additional options to add and remove a job or
service post. Remove options will allow the amin user to search the offending user, go
to the post directly through reports, or remove from the search listing page.
Administrative users will have the capability of banning users who have broken
the site’s terms of agreements. Users may be banned through reports or from the user’s
profile.
Running head: LAB 1 – LOCALLINK PRODUCT DESCRIPTION 9
Administrative users will be able to register or remove a user from LocalLink’s
database in the event of a failure with the sign-up page or process, or for testing
purposes. A special interface will allow them to enter user account information and
apply to the database directly.
Administrative users will be able to view a profile’s full post and work history
regardless of privacy settings. This is needed to properly investigate reports of user
abuse.
Administrative users will be able to flag users as suspicious, giving them a feed
of all the user’s actions. This allows the administrative user to view user patterns to find
bot usage or fraudulent behavior.
For customer service purposes, administrative users will be able to add and
remove notes to an area that is attached to a user’s account. These notes may be
details of previous customer service engagements to keep in mind for future
engagements or reminders of actions that need to be done to the account.
2.2 Major Components
LocalLink will run on cloud-based AWS servers. The database portion of
LocalLink will be powered by PostgreSQL, also on AWS. LocalLink’s web front-end will
be developed in HTML, CSS, JavaScript, and NodeJS. The Android app will be
developed in Android Studio using NodeJS, while the IOS app will be developed in
XCode using Swift. Users will be able to access LocalLink from a desktop or mobile
device through web, or by way of cross-platform app.
Running head: LAB 1 – LOCALLINK PRODUCT DESCRIPTION 10
Gradle will be used for build management for LocalLink while Electron will be
used for documentation. Redmine will be utilized to handle project development
workflow. PayPal and Venmo APIs will be utilized to handle user transactions.
3. Identification of Case Study
LocalLink’s first development will be for use by the Ghent Square Community
Association, an HOA located in downtown Norfolk that covered 462 homes, town
homes, and condominiums (Ghent Square Community Assoc | TownSq). The goal is to
measure the usage of the app by those covered by the HOA to see how often it is used
to connect residents with each other to complete small household tasks for payment.
Parameters such as advertisement range, communication methods, and matching
algorithms can be adjusted while gathering feedback from the case study’s users. If
successful, other nearby HOAs and neighborhood associations can utilize LocalLink to
connect their residents together for small jobs.
4. LocalLink Product Prototype Description
A LocalLink prototype application demonstrates a user’s ability to make posts,
search for jobs and work, navigate to a job site with GPS, communicate with other
users, and adjust user settings. The prototype will also demonstrate the use of hold
harmless agreements as a means of risk mitigation. The application is developed for
desktop and mobile browser platforms. Distribution of the application is limited to the
LocalLink development team and class instructor.
Running head: LAB 1 – LOCALLINK PRODUCT DESCRIPTION 11
4.1 Prototype Architecture (Hardware/Software)
LocalLink’s prototype application will be hosted on an ODU-provided virtual
machine running Windows 10 and run in a Docker container. The prototype utilizes an
Apache web server for front-end web content. PostgreSQL is used as the prototype’s
database system. LocalLink’s web content is accessible from current desktop and
mobile versions of Mozilla Firefox, Google Chrome, and Microsoft Edge.
Web page content will be written in HTML and JavaScript. CSS is utilized to
enhance the appearance of web content. Node.js is utilized to serve dynamic web
content and update web page elements in real time. Calls to the PayPal and Venmo
APIs is used to simulate transactions between users.
4.2 Prototype Features and Capabilities
The application will have two main user roles in the form of the customer and the
admin. Customer roles represent the real-world product’s target consumer. The
customer role is further divided into job poster and job worker roles, and the user can
fulfill both roles without restriction.
LocalLink’s prototype demonstrates the ability for Customer roles to create an
account by providing a unique username and email, as well as the option to link a
PayPal or Venmo account. Job poster customers can post jobs with custom parameters
(job description, payment amount, general location, search radius), search for nearby
job workers, and make a payment to a job worker. Job worker roles can post work with
custom parameters (service description, payment amount, search radius), search for
nearby jobs, upload job completion photos, and accept payment from a job poster. Both
Running head: LAB 1 – LOCALLINK PRODUCT DESCRIPTION 12
job workers and job posters can communicate with each other through secure chat and
filter searches by distance and payment. Both roles can also view GPS navigation, write
reviews of other customers, and read reviews of themselves and other customers.
Admin user roles can perform the same actions as a customer while having
access to additional features. Admin users can erase posts and reviews left by
customer users. The role can create other user accounts (customer and admin), reset
an account’s password, and suspend or ban an account.
Functional Element RWP PrototypeCreate an account Fully-functional Fully-functional
Fill out job worker portion of profile Fully-functional Fully-functional
Fill out job poster portion of profile Fully-functional Fully-functional
View/edit profile Fully-functional Fully-functional
Create job/service listing Fully-functional Fully-functional
Search posted jobs/services Fully-functional Partially
Message job poster Fully-functional Fully-functional
Save a job to view later Fully-functional Fully-functional
Search workers Fully-functional Partially
Message job worker Fully-functional Fully-functional
View job worker work history w/reviews Fully-functional Partially
10-mile radius limit Fully-functional Fully-functional
View past jobs Fully-functional Fully-functional
View messages Fully-functional Fully-functional
Job matching algorithm Fully-functional Fully-functional
View User Profile Fully-functional Fully-functional
View User Resume Fully-functional Partially
Running head: LAB 1 – LOCALLINK PRODUCT DESCRIPTION 13
Modify User Resume Fully-functional Partially
GPS tracking Fully-functional Partially
GPS check-in Fully-functional Partially
Review and rating system Fully-functional Fully-functional
Encrypted chatroom Fully-functional Fully-functional
Photo verification upon job completion Fully-functional Partially
Paypal payment system Fully-functional Partially
Admin - Remove job/worker post Fully-functional Fully-functional
Admin - ban/unban user Fully-functional Fully-functional
File a complaint Fully-functional Eliminated
Report a worker/post Fully-functional Eliminated
Cross-platform support Fully-functional Eliminated
Table 1 – Feature availability of LocalLink prototype and real-world product
4.3Prototype Development Challenges
The successful deployment of the LocalLink prototype relies on overcoming
several challenges. The prototype relies on third party APIs which may at times be
unreachable. A plan of action for unreachable API calls must be developed. GPS
navigation requires occasional calls to the Google Maps API, and an algorithm to
triangulate position in relation to the destination is necessary to prevent too many API
calls. Another challenge is the lack of experience with the software used in the
prototype’s development.
Running head: LAB 1 – LOCALLINK PRODUCT DESCRIPTION 14
5. Glossary
a. Job Poster – A user who posts household tasks as jobs to be worked by workers.
They are temporary employers of the job worker.
b. Job Worker – A user who does unskilled jobs posted by the job poster. They are
temporary employees of the job poster.
c. Guest User – A user who has not yet created an account with LocalLink, or a
user who has an account but is not logged in.
d. Job Completion Photograph – A photograph that serves as visual proof that a job
has been completed. Useful in cases where a job poster must be away from the
job site and wants proof that the job has been properly.
e. Administrative User – A user with elevated privileges that go beyond a normal
user. They may do additional functions such as banning users and removing
inappropriate content from LocalLink.
f. HOA – An abbreviation for homeowner’s association, an organization that makes
and enforces rules for properties and residents under their coverage.
g. AWS – Amazon Web Services. A subsidiary of Amazon that provides on demand
cloud computing services.
Running head: LAB 1 – LOCALLINK PRODUCT DESCRIPTION 15
6. References
“American Time Use Survey - 2018 Results.” Bureau of Labor Statistics,
June 19, 2019. https://www.bls.gov/news.release/pdf/atus.pdf
Dixon, Amanda. “Survey: Nearly 1 In 3 Side Hustlers Needs The Income
To Stay Afloat.” Bankrate. Bankrate.com, October 4, 2019.
https://www.bankrate.com/personal-finance/side-hustles-survey-june-2019/.
“Fine Policies in HOAs - How to Be Reasonable and Follow California
Law.” Why Do Associations Fine?, Educational Community for Homeowners
(ECHO), www.echo-ca.org/article/fine-policies-hoas-how-be-reasonable-and-
follow-california-law.
Ghent Square Community Assoc | TownSq. Ghent Square Community
Association, http://www.ghentsquare.org/.
Haaland, Marie. “Sneaky Reason Why Two Thirds of Americans Do
Chores Incorrectly on Purpose.” New York Post. New York Post, August 8, 2019.
https://nypost.com/2019/08/08/sneaky-reason-why-two-thirds-of-americans-do-
chores-in correctly-on-purpose/.
Whillans, Ashley V., Elizabeth W. Dunn, Paul Smeets, Rene Bekkers, and
Michael I. Norton. “Buying Time Promotes Happiness.” PNAS. National Academy
of Sciences, August 8, 2017. https://www.pnas.org/content/114/32/8523.full.