SquidSoft Inc. - GUIDOs
Functional Specifications - Management Plan


           Table of Contents           

           Major Features           

This system will be able to manage the ordering of inventory between an unspecified number of supermarkets and a single grocery supplier (a warehouse owned by the supermarket chain). The management plan for the system breaks down in three ways. The first is for all of the individual supermarket managers, the second for the managers at the warehouse, and the third for the company manager who oversees both the supermarkets and the warehouse.

Warehouse Manager
  • The ability to track all current inventory: at any given time, this system will allow users to obtain information about the inventory of any given store.
  • The ability to generate shipment invoices: the system allows the warehouse to accept purchase orders, and shipment invoices can be generated to match the corresponding purchase order.

Store Manager
  • The ability to track all current store inventory: at any given time, this system will allow users to obtain all the information pertaining to an entire store's inventory.
  • The ability to generate automated inventory restocking requests: if a product is flagged for automatic reordering, the system will automatically generate a purchase orders for that item when the instore quantity of the item drops below a certain level.

Company Manager
  • Security: This system will have an unspecified number of security levels. The company manager will have access to all the supermarkets. Each supermarket manager can alter the data of his/her own store only. Also, each person who uses the system will be given a password. Only the people who have correct IDs and passwords can enter the system.

           Main Data Structures           
Store
The Store database used to identify the information from store to store. Each store has its own Store ID, which is a number used to identifly itself. Once a valid Store ID is obtained, one can get the store order/inventory information (according to the employee's security level). Store requires the following fields:

Field name Type Description
Store ID (key) integer The ID number of the store
Store Name character The name of the store
Address character The address of the store
Contact Name character The name of the store's contact person
Phone Number character The phone number of the contact person

Inventory
The Inventory database contains the inventory information for all the stores. Individual stores will only see the inventory information for their store come up on the screen (although store managers may have read-only access to other store's inventories.) One should use the Store ID to indicate which store he wishes to check. Once the quantity of an item in stock drops below the reorder value, the alert level (flag) changes and indicates the item need to be restocked. This flag is then checked at the end of the day to determine whether more of the product should be ordered (which is done automatically if that product's status flag is set to 'A'). Inventory requires the following fields:

Field name Type Description
Store ID (key) integer The ID number of a store
Quantity integer Amount of stock that a store currently has
Store Price double Price of an item in the store
Status character There are 3 types of ordering
A - automatic
M - manual
P - requires managerial approval
Alert Level integer Indicates when restocking is required
Target Restock Quantity integer How many of item will be reordered if it is an automatically reordered item

Groceries
The Groceries database contains all the possible items which stores can order (and hence, all the items found in the warehouse). Groceries require the following fields:

Field name Type Description
UPC (key) integer The Universal Product Code of an item
Description string The description of an item
Category string Type of an item
Warehouse Price double Item price in the warehouse

Employee
The employee database is used to store information about employees. The Password field will be unreadable. Employee requires the following fields:

Field name Type Description
Name string The employee's name
Employee ID integer The employee's ID number
Password string The password used by the employee
Security Level integer The security level of the employee
Store ID integer The store the employee works at
Position string The employee's position

Orders
The Orders database contains the order information for all the stores. As with the inventory database, when an employee brings up the orders, only the orders for their store will appear. The warehouse will have access to the orders from all the stores. An Order ID with Store ID determines the order information of a particular store. The database also contains the information of the employee who made the order. An new order is added to the Orders database automatically (if a product level drops too low) or after the manager of the store makes or approves an order. Automatic ordering will be performed at the end of the day. Generally, items requiring managerial approval to order would not have automatic ordering status. The status of an order can be: pending, filled, received or incomplete. Orders requires the following fields:

Field name Type Description
Order Number (key) Integer The order number
Date Ordered string The date of order
Employee ID integer The ID number of the employee making the order
Status character The status of the order

Groceries Ordered
The Groceries Ordered database used to determine the quantity ordered of a particular item and the quantity received of a particular item. Once the Store ID is determined in the Orders database, we know what and how many items a store ordered. Groceries Ordered requires the following fields:

Field name Type Description
Order Number (key) integer The order number
UPC integer The Universal Product Code
Quantity Ordered integer The number of items ordered
Quantity Received integer The number of items received

Security
This table contains the security level information.

Field name Type Description
Security Level (key) string The security level of an employee
Category Access boolean Determines whether an employee has access to that category

           Major Functions           

Since GUIDOs is designed as an interactive system, the functions must allow the users to easily carry out their duties. These duties, however, are different for each position within the grocery service. The three basic positions in the supermarket are cashier, stocker and manager. However, manangers can create as many positions as they need. Here is a sample setup that could be implemented in GUIDOs. In this sample the positions are hierarchical, in which every position can access functions for position below it. However, this may be tailored to the individual employee.

Cashier
  • Selling an item: this requires entering the UPC and quantity/volume of an item, which will automatically decrement the store's inventory of that item by that quantity/volume.
  • Reading/searching the databases: if needed, the cashier may search though the inventory, grocery or orders database. Note that this is read-only access.

Stocker
  • Filling an order: this requires entering the UPC and quantity/volume of each item ordered.
  • Receiving an order: this requires changing the status of an order, and possible changing the number of items received within an order.
  • Reading/searching databases: this function allows the stocker to search though the orders, inventory or groceries database.

Manager
  • Adding a grocery item to the database: this requires that the manager enter the UPC for the new item, then enter the appropriate attributes (price, description, etc.)
  • Modifying/deleting a grocery item: this function allows the manager to modify grocery attributes after entering a valid (existing) UPC. He/she may also delete the item.
  • Adding an employee: this function allows the manager to enter a new employee into the database. The system will assign a unique employee ID number, after which the manager enters information about the employee.
  • Modifying/deleting an employee: this function allows the manager to modify or delete an employee from the database, after providing the correct employee ID number.
  • Reading/searching databases: this function allows the manager to search any of the databases.
NOTE: Every function that allows the modification or deletion of data must provide the user with a warning message before the order is carried out.

In addition, the system will implement a password system restricting access to employees of the grocery. The password is only required upon entry to the system.

Another major function of GUIDOs will be the automatic ordering of groceries. Every time an item is purchased, the inventory is automatically adjusted. When the inventory of a grocery item falls to a given level, the system will automatically generate an order to restock the item.

           Hardware Requirements           

The system will be running off of a series of workstations that will be networked off one server. The server will contain the all the databases necessary for the system to operate. This will be remotely and frequently updated from the workstations. The server will reside in the warehouse for access and maintenance. Since it is essential to prevent from the loss of data, there will be a second hard drive with mirrored information of the primary drive to ensure that the failure of the primary drive will not impede operations until the drive can be replaced. Also, a tape back-up will be installed on the server.

The workstations will be installed into the warehouse and each of the supermarkets that are connected to this system.

           Possible Implementation           

The implementation depends on what kind of platform and language that will be used.

Since a PC based networking system is relatively easy to use and less costly, we assume that we will use PC based networking system.

To provide a user-friendly environment, the workstations will run the Microsoft Windows 95 Operating System. The program itself will use Microsoft Access for the databases and interfaces. This was chosen because of its ease of use for designing and building windows/forms type graphical interfaces that will be simple to use and understood by users. With this package, it would also be easier to develop and maintain the database of the system.

           Minimal System           

At the end of February, we will have the first version of the system ready. It covers the main functions of inventory management on both sides and all required interfaces. The following functions will be included in the system.

Supermarkets
  • Point of Sale: update quantity of a product when it is sold.
  • Ordering Requests:
    • automatic reordering of product when the quantity of the product falls below the reordering limit.
    • manual ordering of products
    • generate purchase order which will be sent to the grocery supplier when an automatic reordering or manual ordering occurs
  • Receive Shipments:
    • modify the quantity of products when received
    • acknowledge the grocery supplier if the shipment is accepted
  • Inventory Control:
    • modify inventory database if necessary after counting the inventory
  • Management:
    • create/modify employee records
    • modify status of orders
  • Query System:
    • product enquiry: prints out the information of the product
    • order enquiry: prints out the information of a specified order or all outstanding orders
  • Security:
    • Full password protection and security flag system will be implemented.
Grocery Supplier
  • Take orders from supermarkets: automatically generate a list of products and quantity required for each product for each order.
  • Ship an order to a supermarket:
    • generate bill of laiding
    • generate invoice for the order
  • Management:
    • create/modify/delete supermarkets
    • create/modify/delete product information

           Enhancements           

If everything goes well, we would probably include the following to the system.

Distinguish between an item of product that is sold or lost
Instead of directly modifying the quantity of a product when there is discrepancy between the quantity of the product on-shelf and the quantity of the product stored in the system, we will add another field to the database to record the discrepancy for inventory control purpose.
Production of hard copy reports
Our minimal system will be able to provide several reports based on the databases, but we would include several other preformatted reports which would deal with supermarket operations on a larger time scale (such as monthly, quarterly and yearly reports.)

           Summary           

GUIDOs is a software package which is designed to handle the ordering of inventory between supermarkets and a single grocery supplier. It is a user-friendly software package which requires minimum of data entry from users and provides the most accurate data efficiently to users. Also, security is one of the major concern of GUIDOS. Computer crime may be in the form of sabotage from disgruntled employees. In order to reduce the possibility of sabotage, GUIDOs is designed to allow only authorized people to access the system.(i.e. an authorized person needs an correct ID and password in order to access the system.) Indeed, GUIDOs is not only efficient, reliable and easy to use, but also cost-effective.

           Team Structure           

The team will tentatively be divided into five subgroups

Management:Keith Uyeno and Joe Goethals
responsible for communication with customers, communication among subgroups, team supervision and deadline enforcement

Technical Writers: (approx. 3 people)
responsible for writing up the user manual

Programmers: (approx. 6 people)
  • approx. 2 people are responsible for user-interface
  • approx. 4 people are responsible for database system and the integration of user-interface and database system

Program Testing: (whole team except programmers)
responsible for developing and carrying out test plan

Document Manager: Marius Zydyk
responsible for all documentation to be posted on the web
Note that the assignment of individuals to some subgroups is still to be determined.
Summary  
User Interaction  
Management Plan  

Glossary  
Main Page  


About SquidSoft Inc. This site created and maintained
with Mortar