Skip to content
Durandt Uys(U18286250) edited this page Jul 20, 2022 · 60 revisions

Fresh Produce Inventory Tracker


1. Introduction

1.1 Purpose

Allow various fresh produce store owners to use this system to keep track of their inventory, manage stock count and monitor product freshness.

1.2 Scope

1.2.1 Product Scope

The Product must provide the users with information that will assist them on understanding stock trends and the sales in their geographical location to alter and guide their decisions to ensure a higher monthly profit and reduce waist to a minimum

1.2.2 Project Scope

The fresh-produce tracker will track the stock and quality of products through various methods. A high level overview consists of:

  • A scale which is placed at the bottom of a shelf to determine stock levels using the initial combined weight of all individual items on the shelf - compared to the current combined weight of items on the shelf in order to calculate the current quantity of that specific item in stock, and notifying the store owner if stocks are getting low.
  • An imaging system will be used where the user will upload photos of products periodically and various methods will then be used alongside an AI-analyzer and sell by dates to determine the freshness.

Furthermore the system will be easy to use and helpful statistical graphs and charts will be generated and displayed to give the user a friendly, informing and understanding User Interface (UI). Security measures will be implemented to ensure the safe and ethical use of the fresh-produce tracker.


2. Overall Description

2.1 User characteristics

The fresh-produce tracker’s users will be fresh-produce store owners who are attempting to minimise the waste of products and optimise storage. Store owners should be technologically able to upload an image to the system, otherwise no technological expertise is required to operate the system. These store owners could be from any store which has been registered.

2.2 Functional requirements

  • FR1. The system should allow the user to reset their password if it has been forgotten or change their password.
    • The system should allow the user to click a forget password button on the login page
    • The system should allow the user to click a change password button on the user profile or in the settings
  • FR2. The system should allow a store owner to create and receive data from a new scale.
    • The system should allow the user to create a scale
    • The system should allow a user to connect to an existing scale
    • The system should send data of the created or existing scale to the user
    • The system should receive individual weight and quantity when scale is created or updated.
  • FR3. The system should be able to notify the user when specific events occur (i.e., low item stock and stock which is in poor condition).
    • The system should be able to create a notification.
    • The system should be able to specify that a notification has been created.
  • FR4. The system should receive images of produce on a specific shelf uploaded by the user, this image will then be used to monitor and report on ‘freshness’ those specific perishable items.
    • The system should allow the user to upload an image from a specific page (inventory page)
    • The system should allow the user to take an image and upload is right away (mobile page)
    • The system should take an uploaded image and use AI to report on the freshness of the produce in the image

Optional requirements:

  • FR5. The system should provide stock trends (i.e., best-selling and worst-selling products) in order to calculate the most optimal stock placement.
    • The system should save stock sales over a set period of time
    • The system should display the tends on the trends page
  • FR6. The system should identify fresh Stock disease.
    • The system should check the uploaded images for any diseases
    • The system should notify the user of any diseases found

3. User Stories, Use Cases and Use Case Diagrams

3.1 User Stories

  • US01: As the user, I want to be able to upload an image of an item of produce.
  • US02: As the user, I want to be able to upload scale attributes.
  • US03: As the user, I want to be be notified by the system for specific events (i.e., resetting a password or when stock is low for a specific product).
  • US04: As the user, I want to be able to reset my password.
  • US05: As the user, I want to the current stock of my produce to be displayed.
  • US06: As the user, I want to be able to see trends/analytics about my produce.

3.2 Use Cases and Use Case Diagrams

  • User subsystem:

UC1.1. The user should be able to upload an image of an item.

UC1.2. The user should be able to upload scale attributes.

UC1.3. The user should be able to reset their password.

DACERS USER Use Case Diagram FINAL

  • Notify subsystem:

UC2.1. The user should be notified for specific events (i.e., resetting a password or when stock is low for a specific product).

UC2.2. The user should be notified about 'freshness' of their specific produce.

DACERS NOTIFY Use Case Diagram FINAL

  • Upload subsystem:

UC3.1. The user should be able to input scale attributes.

UC3.2. The user should be able to upload an image of an item of produce.

DACERS UPLOAD Use Case Diagram (1)

  • Feedback subsystem:

UC4.1. The user should be able to view the current stock of a specific item.

UC4.2. The user should be able to view trends about their produce.

UC4.3 The user should be able to view analytics of the most optimal shelf placement for their produce.

DACERS FEEDBACK Use Case Diagram)


4. Service Contracts

4.1 Sign Up

Service Contract summary: Sign up will create a user account for the client using the username and password they have entered.

Actors:

  • The user (fresh-produce store owner).

Context/scenario:

  • A fresh-produce store owner who is not registered, would like to access the fresh-produce tracker.

Pre-conditions:

  • The user may not already have registered.

Post-conditions:

  • A user must have been created and appear in the database.
  • The user will be transported to the produce stock page.

4.2 Login

Service Contract summary: Login requests a user email and password.

Actors:

  • The user (fresh-produce store owner).

Context/scenario:

  • The user is on the login page and wants access to the system they pass in their information. That information is verified by the system and grants or denies access.

Pre-conditions:

  • The user must have a registered account.
  • A valid email address and password must be provided.

Post-conditions:

  • The user will be signed into the system and navigated to the main/landing page.

4.3 Upload Image

Service Contract summary: Upload Image will receive an image from the user and will be stored in the users img file. The name of the image will be stored in the database.

Actors:

  • The user (fresh-produce store owner).

Context/scenario:

  • An Image will be uploaded to the system for freshness evaluation and will report back to the user.

Pre-conditions:

  • Image must be the correct file type (.jpg).

Post-conditions:

  • The image will be stored in the users img file.

4.4 Forgotten Password

Service Contract summary:

Actors:

  • The user (fresh-produce store owner).

Context/scenario:

  • When a registered user forgot their login credentials and needs to access their profile - they then reset their password and will now be able to Login via their new password

Pre-conditions:

  • Must have an account
  • Must have access to emails from the known email address

Post-conditions:

  • User updates password
  • Can now login to the system with their credentials and see relevant statistics.

4.5 Upload Scale Attributes

Service Contract summary: Upload Scale Attributes will receive various attributes about a scale (i.e., scale ID, type and weight of item, quantity of item) from the user and will be stored in the database.

Actors:

  • The user (fresh-produce store owner).

Context/scenario:

  • The user would like to track the stock of a specific item, hence they input certain attributes which are needed by the system in order to so.

Pre-conditions:

  • N/A

Post-conditions:

  • Attributes about the scale will be stored in the database.

4.6 Notify User

Service Contract summary: Send a notification to the user when they update their password or if stock for a specific item is low.

Actors:

  • The user (fresh-produce store owner).

Context/scenario:

  • An event occurs in which the user needs to be notified by email.

Pre-conditions:

  • The user must be registered with a functional email address.

Post-conditions:

  • The specific user will be notified.

4.7 Give Trend Feedback

Service Contract summary: Supplying the user with accurate information and trends about produce.

Actors:

  • AI

Context/scenario:

  • Present meaningful data about the clients store sales

Pre-conditions:

  • Regeneration of scales
  • Regular uploads of images

Post-conditions:

  • Visual representation of data

4.8 Give Freshness Feedback

Service Contract summary: Give Freshness Feedback will provide the user with feedback on the freshness of items.

Actors:

  • AI

Context/scenario:

  • The user must be given accurate feedback on how long items have until they perish.

Pre-conditions:

  • The user must select a specific item they would like feedback for.

Post-conditions:

  • Accurate feedback must be displayed to the user.

4.9 Get task

Service Contract summary: Get task will provide the user with a task related to produce such as restocking a particular item as it is low in stock or has perished.

Actors:

  • The user (fresh-produce store owner).

Context/scenario:

  • The user must be given tasks to complete on the necessary shelves/products.

Pre-conditions:

  • An item should be low in stock or have perished.

Post-conditions:

  • Task(s) must be displayed to the user.

4.10 View average trends

Service Contract summary: View average trends will provide the user with trends on the average amount of all produce sold daily.

Actors:

  • The user (fresh-produce store owner).

Context/scenario:

  • The user must be given trends based on the weekly sales of produce.

Pre-conditions:

  • The user must select view trend in the sidebar.

Post-conditions:

  • Trends for all produce must be displayed to the user.

4.11 Filter trends

Service Contract summary: Filter trends will allow the user to filter trends describing the average amount of produce sold daily for a specific product.

Actors:

  • The user (fresh-produce store owner).

Context/scenario:

  • The user must be given trends on the average amount of a specific produce sold daily.

Pre-conditions:

  • The user must select a specific item they would like to filter the trend for.

Post-conditions:

  • Trend for that specific item must be displayed to the user.

4.12 Edit profile of current user

Service Contract summary: Edit profile of current user will allow the user to edit their current profile (personal details).

Actors:

  • The user (fresh-produce store owner).

Context/scenario:

  • Allow the user to edit their profile details.

Pre-conditions:

  • The user must edit their profile (personal details).

Post-conditions:

  • The changes made to the current user's profile should be applied.

5. Class diagram

Copy of Untitled Diagram drawio


6. Quality requirements

  • Availability:

The fresh-produce tracker must be accessible at least 95% of the time to any store owner.

  • Usability:

The fresh-produce tracker must also allow for simple creation of user accounts as well as easy navigation throughout all pages of the system. This will be prioritised in the front-end.

  • Scalability:

The fresh-produce tracker must account for multiple concurrent users and should be able to add large groups of user accounts (i.e., new fresh produce distributors) or large groups of items (i.e., setting up a produce store for the first time).

  • Performance:

User accounts should be created within a reasonable timeframe. Owner accounts must be able to immediately view the stock of an item.

  • Maintainability:

Database tables should be kept up to date and tested.


7. Trace-ability matrix

image