System Description - TalatCikikci/BounSwe573Repo GitHub Wiki

Table of Contents

  1. Introduction
  2. System Features
  3. Feature 1 : User Accounts
    1. Requirement 101: Create User Account
    2. Requirement 102: Login
    3. Requirement 103: Logout
    4. Requirement 104: Forgot Password
    5. Requirement 105: Edit Profile
    6. Requirement 106: View Profile
    7. Requirement 107: Delete User
    8. Requirement 108: Permission Management
    9. Requirement 109: Change Password
  4. Feature 2 : Products
    1. Requirement 201: Create Product
    2. Requirement 202: Delete Product
    3. Requirement 203: Add Product Category
    4. Requirement 204: Search Product
    5. Requirement 205: Display Product Information
    6. Requirement 206: Add Producer
    7. Requirement 207: Edit Producer
    8. Requirement 208: Delete Producer
    9. Requirement 209: Add Product to Inventory
  5. Feature 3 : Social Interactions
    1. Requirement 301: Comment
    2. Requirement 302: Rate
    3. Requirement 303: Delete Comment
    4. Requirement 304: Search User
    5. Requirement 305: Add Announcement
    6. Requirement 306: View Announcement
  6. Feature 4 : Checkout Register
    1. Requirement 401: Put Items in Cart
    2. Requirement 402: Member Discount
    3. Requirement 403: Check-out Cart
  7. Feature 5 : Reporting
    1. Requirement 501: Report Sales

Introduction

"BounBazaar" system is a public announcement and register system that will be utilized by the BUKOOP initiative. Its main goal is to provide an interactive platform for buyers, producers and sellers of a Food Cooperation. Users are able to learn about producers, search products that are provided and rate and express ideas about them. Users can become registered users to receive announcements and volunteer to help the organization and logistics of the products, as well as their transactions.

[images/BuCoopSystemUseCases.png](images/BuCoopSystemUseCases.png)

System Features

Following is a list of features requested by the customer and the breakdown of implied or agreed requirements related to them.

Feature 1: User Accounts

System supports interaction of registered users. Following requirements should be satisfied to provide user account functionality expected by the customer.

Requirement 101: Create User Account

Users can create a new account to be able to use some functionality that is not available to unregistered users. Registration is done by filling out a registration form and submitting it to be reviewed by admins. The registration form contains the following fields:

-Username  
-Password  
-Password Confirmation  
-E-Mail Address  
  • The "Password" and "Password Confirmation" fields must match for the user to be able to proceed with registration.

  • The "Password" and "Password Confirmation" fields must be masked.

  • "Username" must be unique in the system.

  • "E-Mail Address" must be unique in the system.

Requirement 102: Login

Users are able to login using their username and password. The username and password pair will be compared with the user data in the database; if there is an entry with same username and password pair user will be logged on to the system.

  • Login will make use of the following text fields:
-E-Mail Address  
-Password  
  • Password field must be masked.
Requirement 103: Logout

Users are able log out of their current sessions. This is done by clicking a "Logout" button.

  • When user clicks the "Logout" button, the session should be terminated safely.

  • After logout process is finished, user should be redirected to the home page.

  • A logout successful message should be displayed to the user.

Requirement 104: Forgot Password

Users are able to reset their password when they have lost it.

  • After clicking the "Forgot Password" button, user should be redirected to the "Password Reset" page.

  • "Password Reset" page should have the following field:

- E-Mail Address  
  • If the entered e-mail address exists in the system, then the system will send that e-mail address an e-mail that contains a randomized password.

  • User's password in the system should be changed at the same time to match the password string sent by mail.

Requirement 105: Edit Profile

Users can edit the information on their profile page. This information includes "Real Name" and "Password". Users can also mark certain fields to be hidden to public view if they do not wish other users view them.

  • Fields that are editable are as follows:
- Real Name  
- Profile Picture  
- About Me  
  • Fields have a checkbox next to them. User can check this checkbox to hide the related information from public.
Requirement 106: View Profile

Users can view their and other's profiles, displaying information that has not been as private by others. This includes all profile information by default.

  • When a user navigates to their profile page they are able to see all the information about themselves.

  • When a user navigates to another user's profile page they can only see information that has not been privatized.

Requirement 107: Delete User

Administrators can delete a user's profile if it is necessary.

  • The deleted profile should not be removed from the database completely but it should be marked as inactive. This is due to conservation of reports, comments and ratings.

  • The inactive profile is no longer accessible by logging in to the portal.

  • The inactive profile will not be displayed in search results.

  • The inactive profile's comments will be shown as written by "Inactive User".

Requirement 108: Permission Management

Administrators can allow other users to have elevated permissions.

  • There are certain roles an account can take. These include;
- Regular User  
- Member  
- Volunteer  
- Administrator  
- Super Administrator  
  • There is only one "Super Administrator" user, created by default, that will manage the system after the initial deployment.
Requirement 109: Change Password

Users can change their password anytime they wish through their profile page.

  • User should be redirected to the "Change Password" page when they click the "Change Password" button.

  • In the "Change Password" page, the users have to enter the following information to change their password:

- Current Password  
- New Password  
- Confirm New Password  
  • The "Current Password", "New Password" and "Confirm Current Password" fields should be masked.

Feature 2: Products

System keeps track of all the products that are being sold and have been sold, display their basic information and allows them to be searched by users.

Requirement 201: Create Product

Administrators are able to create new products in the system, as new products are received from the producers.

  • Following information must be entered to create a new product:
- Product Name  
- Product Producer  
- Category
- Product Package Type  
- Product Package Size  
- Product Description  
  • A product can only have one "Category".

  • "Product Package Type" can be "Liters", "Kgs", "Grams".

  • "Product Package Size" is quantity of the product by which it will be sold. For example; it will denote the "1" in "1 liter of milk" or "200" in "200 grams of butter".

  • Created product will have a "Quantity" of 0. Quantity will be increased by administrators while they enter products into the inventory.

Requirement 202: Delete Product

Administrators can remove a product from the database of products if it is necessary.

  • The deleted product will no longer be displayed in the user portal, and will not have it's own product page.

  • Product will not be deleted from the system database and will still contribute to any historical data (reports, purchase history, etc...)

Requirement 203: Add Product Category

Administrators can create new categories for products to be sorted in.

  • Created categories must be unique.
Requirement 204: Search Product

Users can search the products on the system using a search bar in the header section of the portal.

  • Products can be searched using one or more of the following information:
- Product Name  
- Product Producer  
- Product Package Type  
- Product Package Size  
- Product Description  
- Product Picture  
  • Search string should be able to search for keywords partially. For example; "pey" search string should be able to find "pey", "peynir" and " peynir ".

  • Additionally users can select filters to apply to the search results. Filters may include the following:

- Category  
  • Category filter should be selected from a drop-down menu
Requirement 205: Display Product Information

Users can navigate to a product's details page and see information about that product.

  • The displayed information includes the following:
- Product Name  
- Product Producer  
- Product Package Type  
- Product Package Size  
- Product Description  
- Product Picture  
- Quantity in Stock  
- Price per Unit  
- Comments  
- Producer's Location
Requirement 206: Add Producer

Administrators can add new producers to the system to be associated with the products in the inventory.

  • Following information must be entered to create a producer:
- Producer Name  
- Producer Description  
- Contact Information  
- Location  
Requirement 207: Edit Producer

Administrators can edit the producer information if it becomes necessary.

  • Following fields can be edited:
- Producer Name  
- Producer Description  
- Contact Information  
- Location  
Requirement 208: Delete Producer

Administrators are able to delete producers from the system if it becomes necessary.

  • Once a producer is deleted from the system, all products associated with that producer will have their "Producer" information replaced as "Producer No Longer Available".
Requirement 209: Add Product to Inventory

Administrators can enter items into the inventory as they are received from the producers.

  • Administrator will search for the item in the portal and increase it's quantity to enter it into the inventory.

Feature 3: Social Interactions

System supports some basic social interaction between the users.

Requirement 301: Comment

Users can comment on items to express their thoughts to other users of the system.

  • Comments consist of small text fields.
Requirement 302: Rate

Users can give points to a product to give feedback about the quality.

  • Point scale will be from 0 to 5.
Requirement 303: Delete Comment

Users can delete the comments they have made about an item if they wish to do so.

Requirement 304: Search User

Users can search other users on the system.

  • Search keywords will be matched with usernames.
Requirement 305: Add Announcement

Members can add announcements to inform the users of the system about major events that are taking place.

Requirement 306: View Announcement

Members can navigate to the announcements page and see the latest announcements.

Feature 4: Checkout Register

System allows the BUKOOP sellers to use its interactive checkout register to calculate the total price of the products a customer wants to buy and manages the inventory automatically when items are checked out.

Requirement 401: Put Items in Cart
Requirement 402: Member Discount
Requirement 403: Check-out Cart

Feature 5: Reporting

System should be able to produce reports of sales and display them to the users.

Requirement 501: Report Sales