Skip to content
David edited this page Nov 3, 2020 · 28 revisions

Wiki Tab

threadRepo - CSCI 150 Fall 2020 Project

1. Introduction

2. Description

3. Requirements

   3.1 UI Requirements

   3.2 Functional Requirements

   3.3 Non-Functional Requirements

4. Prioritization

5. Diagrams


1. INTRODUCTION

1.1 Purpose

threadRepo is a website application that allows users to to purchase and sell clothes online. This wiki is a complete collection of requirements for the development of threadRepo. These requirements help in the development of the application by giving an outline of the priorities to be taken during different stages of development.

1.2 Scope

ThreadRepo Will be an e-commerse web application that is a place for users to buy and sell apparel and shoes. Communication between users will be allowed for inquries, and we want to give a user friendly approach to enable fast transactions. We want our web application to be aesthetically pleasing in order to inhance the experience.

The user will need to have access to an account in order to buy and sell. Requirements will include the First Name, Last Name, personal or professional email. Buyers will be given a prompt to enter payment information using Paypal and sellers will be able to give a price on the product and describe it. Listing will be available to users with no profile but will not be able to purchase anything without an account.

1.3 Overview

threadRepo will be comprised of technologies featured in the MERN Stack. Those technologies being MongoDB, Express.js, React, and Node.js. Using these Four technologies we will fully create our website, with all features listed in Scope. We go into further details in section 2. Description.

2. DESCRIPTION


2.1 Product Components

This is the basic layout of how our clients will access the database.

2.1.1 The Client

The client is our website we created. This will be responsible for allowing users to access features on the website which will only be available after they have logged in. The ability to access these features is done by a user interface which is implemented using React (Javascript library) and Material-Ui (A React UI Framework). These will help our web development process become faster and easier, while creating an aesthetically pleasing web site for our users.

2.1.2 The Server

The server is placed between the client and the database. Here is where we handle user requests. This is done by using routes that send and recieve information from the client to the webserver where our data is then saved in the database. When a user decides to login or register , this is sent to the server side which is connected to the database.The server will also handle any errors that become present and are redirected to the client if it is relevant. Node js and Express js are the server side programming languages we are using.

2.1.3 The Database

MongoDB will be the database that holds our user's information as well as the listings they create. The user needs to authenticate themselves to access the stored user data in the database, and this is done by signing in where we will compare the hashed password in the database with the password they input in the front end(sign in page of website). As the creators of the website we are able to alter the stored data in the user base if needed. This includes altering the specific properties of a listing to deleting an account.

Example Storage of user account & listing in mongoDB :

Example User login:

Example listing:

2.2 Users

This website will have a user and an admin. The user will need functionality that is provided from the client. Some examples include creating an account, logging in, creating a list, changing profile page. The users will also need functionality for communicating with sellers, which the server will need to do in order transfer the messsage between users.

3. Requirements


3.1 UI Requirements Home page, login page, listing page, checkout page, user profile page, etc.

ID: UIR1 Home/splash page (All listings)

  • Description: Given the user has accessed the website, the home page is display which contains all listings.

  • Rationale: In order for the user to view the website

  • Dependency: N/A

    ID: UIR2 Specific listing page

    • Description: Given the user is on the home page, they can view a specific listing where they can later checkout.

    • Rationale: In order for the user to view a specific listing.

    • Dependency: UIR1

      ID: UIR3 Checkout page

      • Description: If the user is logged in and on a specific listing, they can be taken to a page where they can checkout with PayPal API.
      • Rationale: For the user to able to checkout a listing.
      • Dependency: UIR2

    ID: UIR4 Filter listings

    • Description: If the user is on the home page, they can filter listings with drop down menus of categories of garment type, size, condition, and color.
    • Rationale: For the user to be able to use the website
    • Dependency: UIR1

    ID: UIR5 Register page

    • Description: Given the user is on the website, a user can go to the register page where they can register.
    • Rationale: For the user to be able to register.
    • Dependency: UIR1

    ID: UIR6 Login page

    • Description: Given the user is on the website, a user can go to the login page where they can login if they have registered.
    • Rationale: For the user to able to log in.
    • Dependency: UIR1

    ID: UIR7 Create listing page

    • Description: Given the user is on the website, a user can go to the create listing page where they can create a new listing if they are logged in.
    • Rationale: For the user to be able to create a listing of their own.
    • Dependency: UIR 1

    ID: UIR8 User profile page

    • Description: Given the user is on the website, a user can view their user profile page if they are logged in.

    • Rationale: For the user to able to view their profile.

    • Dependency: UIR1

      ID: UIR9 Order history page

      • Description: Given the user is on their user profile, they can view their order history page.
      • Rationale: For the user to able to view their order history.
      • Dependency: UIR8

3.2 Functional Requirements ID: FR1 Access website

  • Description: A user should be able to access the website through a url via internet browser

  • Rationale: For the user to able to use the website

  • Dependency: N/A

    ID: FR2 View all listings

    • Description: The home page or landing page of the website displays all available listings from the database.

    • Rationale: For the user to view all listings.

    • Dependency: FR1

      ID: FR3 Filter listings

      • Description: If the user is viewing all litsings, they can filter listings by a combination of category garment type, size, condition, and color.
      • Rationale: For the user to be able to filter all listings.
      • Dependency: FR2

      ID: FR4 View specific listing

      • Description: If the user is viewing all listings, they can view the page of the specific listing.
      • Rationale: For the user to able to view a specific listing.
      • Dependency: FR2

    ID: FR5 User register

    • Description: A user should be able to register through the client if they are on the website. A first name, last name, email, username, and password are required. It is stored in the database

    • Rationale: For the user to register through the client.

    • Dependency: FR1

      ID: FR6 User login

      • Description: A user can login if they have registered through the client. Only the email and password are required to login. The information is from the database.

      • Rationale: For the user to login through the client

      • Dependency: FR5

        ID: FR7 Create listing

        • Description: Given a user is logged in, a user can create a new listing that requires a name, description, garment type, size, color, condition, price, along with pictures. This information is stored in the database.
        • Rationale: For the user to create new listings.
        • Dependency: FR6

        ID: FR8 Checkout listing

        • Description: Given a user is logged in and is on the specific listing page, they are able to checkout via PayPal API.
        • Rationale: For the user to purchase created listings from other users.
        • Dependency: FR4, FR6

        ID: FR9 User profile

        • Description: If a user is logged in, they can view information about themselves they have provided in registration.

        • Rationale: For the user to view their user profile.

        • Dependency: FR6

          ID: FR10 View order history

          • Description: If a user is logged in and on their user profile page, they can view a page of their order history.
          • Rationale: For the user to see their order history.
          • Dependency: FR9

3.3 Non-Functional Requirements

3.3.1 Responsive UI:

  • Description: User interaction with the client should take no longer than 5 seconds more or less.
  • Rationale: For the user to have a comfortable and responsive user experience (and so they know the client is not broken, bugged, or slow).

3.3.2 Network/database connectivity:

  • Description: All functions and interactions involving the database should take no lonegr than 5 seconds more or less.
  • Rationale: For the database to not be unresponsive and prevent flooding or slowing down of the database via infinite/slow requests.
  1. Prioritization

The order of priority for threadRepo starts with establishing a functional main webpage, this means having a properly layed out design for the site. There will be some examples of listings up for a user to view. Users will also have the ability to create a profile that incorporates login capabilities.

The following item in the list of priorities for threadRepo is the ability for users to create, delete and edit listings that they created. This will include having incorporated a database in which details about different listings will be stored and modified in.

The next item in the list of priorities for threadRepo will be to the ability for users to view their orders and history. Users will also be able to leave comments on live listenings.

Next item in the list of priorites for threadRepo are some administrative features. These features will include those that users are capable of but will include some features that will only be usable by the admin of threadRepo.

The next item in the priority list for threadRepo is a search/filter ability. This will allow users search for specific items through title descriptions or filter items based on a category of listens, price range and a range of other variables. Users will have the ability to bookmark and share listings.
Users will also have a comment section that they will be able to interact with.

The next feature in our prioritized features is a peer to peer messaging system. This will allow users to communicate with each other and help a successful transaction among them. Users will also have the ability to customize their own profile pages.

The final feature for threadRepo will be UI/UX polishing and minor tweaks to some of the functionality of the site.

Clone this wiki locally