22
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

 · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1:  · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

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

Page 2:  · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

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

Page 3:  · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

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).

Page 4:  · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

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

Page 5:  · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

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

Page 6:  · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

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

Page 7:  · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

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.

Page 8:  · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

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.

Page 9:  · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

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.

Page 10:  · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

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.

Page 11:  · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

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

Page 12:  · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

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

Page 13:  · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

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.

Page 14:  · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

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.

Page 15:  · Web viewBenjamin Velazquez Old Dominion University CS 411W Professor James Brunelle 26 January 2020 Version 2 Table of Contents 1. Introduction3 2. LocalLink Product Description4

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.