-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Project Name: Word of Mouth
Project Leader: John Eagan
Start Date: 9/14/2021
Members | Roles |
---|---|
John Eagan | Team Lead, Full Stack |
Mitchell Maltezo | Full Stack |
Anthony Marin | Front-end |
Travis Quigg | Back-end |
Jacob Sales | Back-end, Editor |
Mary Valencia | Front-end |
- Abstract
- Introduction
- Purpose
- Scope
- Project Description
- Project Features/Requirements
- Prioritization
- Diagrams
- References
Word of Mouth is a web based service made to easily connect labor workers with potential customers. We have provided a wiki here to describe what this service will do and what features will be included. The following provides a more detailed overview of the objectives and priorities of the project.
Labor workers will now have a dedicated platform to store their information and connect to customers online. They will be able to stylize their own profiles and include many important aspects to be considered when negotiating prices with customers. After creating a profile, they will be registered in a search database for customers to look up.
This service can also be used by those who are looking for services such as gardening, fence work, pool service, and many other services provided in their area. All the customer will have to do is use the provided search function to look for labor workers registered in their area. As a result of connecting laborers and customers, this service will improve the chances of success for small, local businesses who often struggle to become known.
- “How to - Login Form.” How To Create a Login Form, https://www.w3schools.com/howto/howto_css_login_form.asp.
Word of Mouth is a website where people/users looking for a laborer (landscaper, painter, etc) can browse different laborer profiles and examine their services and rates. There will also be a "reviews" section where a machine learning model interprets reviews without defined ratings and breaks them down into good or bad.
Database Integration - The database software used to store the website's data will be MongoDB through a cloud service, such as AWS. The database will handle reads to display user information and writes to update user information. The initial data used to fill this database will be pooled using a web scraping library, such as Python's Beautiful Soup.
Login and Register - A user will be able to register an account with the website by providing a username/email and a password. They should then be able to login to the website and access their personal account.
Profile Pages - Each user that is a laborer will have a personal profile page associated with their account. The user will be able to add the information about their area of work, expertise, and anything else they want potential employers to see about themselves.
Searching for Laborers - Users that are looking for a laborer will have access to a search bar and filter tags that enable them to look through different laborer profiles based off chosen filters. The users will then be shown a list of results as a set of profiles that match their filters.
Analyzing Reviews - Users will be able to see reviews on individual profiles as well as the results of an NLP analysis of the reviews. This means the user will see how many and which reviews were categorized as good or bad sentiments towards a specific laborer or their work.
2.2.1 Client
The client in our project is the website we created. The website will be able to let users search through many different labor worker’s profiles that will pop up after they input their search information(location, type of labor). It will also allow workers to make profiles. The information in these profiles will be stored in a database. The website will be an organized platform to let the users and workers find exactly what they need.
2.2.2 Server
The server will connect the client and the database. It will take the users input for which kind of labor they are interested in and send it to the web server to search through all of the workers profiles. The server sees which ones match the keywords the user is looking for. It will also take the worker’s profile information and store it into a database.
The users of Word of Mouth will consist of two types: independent contractors/laborers and those looking for workers to complete a job. Both types of users will benefit from having basic knowledge of how to navigate webpages.
Independent contractors/laborers will have the ability to post their past work and contact information onto their user profile. The ability to fill out internet forms and upload photos will be required in order to register and to add projects to their profile.
Users looking to hire can use Word of Mouth to search for laborers who specialize in certain types of projects such as: painting, gardening, carpentry, etc. Using the search tool, these users can specify what type of worker they are looking for and in what area.
Both types of users (laborers and those looking for laborers) will have the ability to leave reviews on profiles to help other users determine whether or not they should engage in business with contractors or contractees.
Potential employers looking for a contractor/laborer may also use the site without an account, but they will not be able to review other user's services.
Design Constraints
- Ability to implement adequate data security measures, such as encrypted password storage using hashing techniques.
- Lack of time to implement QoL features (ie. display settings).
Resource Constraints
- Lack of budget to use paid cloud services (ie. MongoDB)
- Lack of time due to the small timeframe given to create a fully fleshed out website with unique features.
UI Requirements The general UI requirements will contain a home/landing page, login, user profile, profile editing, results page, and finally a navigation bar. Future changes and additions will be added on and updated as we go. Future possibilities: Customer login, Direct messaging between users
UI 1: Landing page
- Description: Initial home page that will contain the general information that will be used by the customer and the worker. It will house login, logout, and register options in the top right corner of the site
- Rationale: The initial page contains a search option for customers looking for workers, a login/register button for workers, functional navigation, and leads to the result page after a search. It also could also contain ads and a logo for stylizing.
- Dependency: In terms of style, none. In terms of functionality, it will require UI 2 - 6.
UI 2: Worker Login/Register
- Description: Assuming the user is on the landing page, the worker can click on the login icon provided on an area of the landing page to either log in or register an account. Account registration is for labor workers to create a profile for customers to look up and/or review. The worker can also link their social media accounts to their registered account.
- Rationale: Developed for the worker to be able to promote their craft and social media connections.
- Dependency: UI 1
UI 3: User Profile
- Description: A worker profile that the customer will be able to access as a results page after a search. It is the page that the worker can freely access and edit their profile. The profile includes photos, social media, description, location, etc.
- Rationale: Serves as an advertisement for the worker to promote themselves. It is shown on the results page or after specific search results.
- Dependency: UI 1 - 2
UI 4: Profile editing
- Description: Allows the user to edit their work page; I.E. how they upload photos, contact, experience, etc.
- Rationale: For the user to be able to update their profile and to make their page more appealing.
- Dependency: UI 1 - 3
UI 5: Results Page
- Description: The page that is linked from the Landing after a descriptive search by a customer. Contains a list of size N worker profiles with their reviews and related work tags for the customer to review.
- Rationale: Will be a result of the search bar on landing, allowing the user to filter their options. A search/advanced search bar to continue another search for profile and location based listing.
- Dependency: UI 1 - 4
UI 6: Navigation bar
- Description: A top navigation bar below the logo but above the search bar for users to easily navigate.
- Rationale: Links to every page needed. Results page from search functionality will not be located here. Logging in unlocks profile navigation. Can add extras later down the line.
- Dependency: UI 1, UI 3
ID: FR1
Search/Filter
- Description: The user will be able to search and filter different profiles using a search bar and filtering options. The results will be collected using a query through the database for potential laborers.
- Rationale: Users need to have a method for searching for laborers based on their profile information, such as type of work, service rate, experience, etc. This provides the customer the ability to find the type of laborer they need.
- Dependencies: FR2
ID: FR2
Database
- Description: The website will be able to read/write data to a database, which will store information about users including their login information and profile data.
- Rationale: The data about users and their profiles needs to be stored somewhere and be accessible for display on the website.
- Dependencies: None
ID: FR3
Writing Reviews
- Description: The users will be able to write their own reviews on a laborer’s profile.
- Rationale: Users should be able to add reviews on the website according to their experience with a laborer’s work.
- Dependencies: FR2
ID: FR4
NLP Analysis of Reviews
- Description: A Natural Language Processing model will be able to analyze the collection of reviews associated with a specific laborer and determine the sentiment of each review as good, bad, or neutral.
- Rationale: Users need to be able to get a rough idea of how good or bad a laborer is. By analyzing past reviews, the NLP model can provide an estimation of how other people rated a laborer’s performance to the user.
- Dependencies: FR2, FR3
ID: FR5
Account Registration
- Description: The users will be able to register an account on the website using a registration form. The users will be able to provide a username, email, password, phone number, and labor keywords when registering their account.
- Rationale: Users need to be able to create and register an account on the website so other users can distinguish them through their account names and profile information.
- Dependencies: UI2, FR2
ID: FR6
Profile Edit
- Description: The users will be able to edit the information displayed on their profile, which includes their username, location, labors, user bio, phone information, and profile picture.
- Rationale: Users need to be able to edit their profile pages to reflect their work experience, describe their expertise and types of labor, and to allow other users to see this information.
- Dependencies: UI4, FR2
NFR: Security
- Authentication: Use emails to authenticate each user. Random secret key will be used to encrypt user data.
- Authorization: Uses twitter API login to ensure that the user is authorized. Will also confirm that tokens are authentic to each user. These tokens will be used to then confirm their username for the web scrape script.
- Availability: Website will need to be at least available 95% of the time.
NFR: Ease of Use
- Search Performance: Needs to make sure that search results come quick enough as to not feel slow to the user. This average will be defined as 2 seconds.