NCC 2007 Application Development

Norman’s Consumer Clearinghouse

 

 

Do not open until instructed

 

Your team has just won a bid to architect an integrated inventory management/point of sale system for up and coming retailer Norman’s Consumer Clearinghouse (hereafter known as NCCStore).

 

Enclosed you will find specifications for three separate but related applications:

1 – Inventory Management System

2 – Point of Sale Application

3 – Line Manager Web Site

 

Each team may choose to work on one, two, or all three of the applications.  It is not required that any team complete (or attempt) multiple paths - each team may attempt whichever application(s) are best suited to their programming expertise.  The team may chose to work on multiple paths simultaneously or to focus all efforts on one problem.  Each path will be scored independently with the highest scoring path receiving full credit and the secondary path(s) receiving depreciated credit.

 

Each application is composed of multiple function points of varying difficulty and point value.  There is no inherent advantage to choosing one path over another, and each path can be completed in multiple languages (though some combinations will make more sense than others).

 

Conceptual screenshots are provided in the competition resources.  These mock-ups were designed during initial planning meetings with management.  These designs are NOT set in stone, they are only provided to indicate a direction you could follow.

 

Each team will also be expected to provide documentation.  This includes a run book, technical reference and end user manual.   The run book is REQUIRED for your submission to the scored.  The technical reference and user manual will enhance the score of your submission.


While not required, one strategy for attacking this complex statement would to divide the team members into distinct “roles” – Programmer, DBA, Project Manager, etc…

 

 

Good Luck!

 

You may take the problem statement with you, but please remember to leave your run book and anonymous survey!

Inventory Management System

The inventory management system is designed to be used primarily by warehouse workers.  The system must use a simple command line driven interface as the only method of interaction will be by keyboard.

 

The application needs to perform the following functions:

 

Welcome Screen

The user is presented with a welcome screen stating the name of the franchise, Norman’s Consumer Clearinghouse.

 

Store Identification

At the bottom of the welcome screen, the user is to be prompted to enter a StoreID number (look in provided file STORES.TXT for pre-populated store information).  If the StoreID is valid, the store’s name, address, city, state, zip, and phone number is printed to the screen.  If the ID is not valid the user is to be presented with an error and returned to the welcome screen. 

 

Menu

Upon successful verification of the StoreID entered at the welcome screen, the user is presented with a menu containing the following options:

  • Add to Inventory
  • Remove from Inventory
  • List Inventory
  • Lookup UPC
  • Exit

There should be a simple and intuitive way to navigate to each menu selection.

 

Add to Inventory

This function is to be used when new shipments arrive.  Each pallet of merchandise is accompanied by a fixed with text file (see ADD.TXT for an example file) with the following information:

  • UPC
  • Item name
  • Quantity to add
  • Price per unit

If the UPC is not in the master inventory file (see INVENTORY.TXT) the UPC, name, quantity, and price is added as a new entry.  If the UPC already exists in the master inventory file only the quantity is to be updated (the name and price already in the master inventory file should be considered authoritative).

 

Remove from Inventory

Items that have been in stock for too long may be sold back to the manufacturer and need to be removed from inventory.  When items need to be removed from inventory management will provide the warehouse manager with a fixed width file containing UPC and quantity to remove.  If all the UPC and quantity values are valid the program removes the specified quantities from the master inventory file and outputs an updated inventory.  If a UPC is not found in the master inventory file or the quantity to be removed is greater than the quantity on hand the program prints an error report.

 

Lookup UPC

Management often asks about the status of a particular product.  This function allows the user to enter a UPC for look up.  If the UPC is valid the application displays the name of the product, the quantity on hand, and the price per item.  If the UPC is not valid the application should return an error.

 

List Inventory

This function should at a minimum list each item that is in inventory, the price per item, and the quantity on hand.

 

If there is time, the report could be enhanced by adding the extended value of each item (price x quantity on hand) followed by summary lines listing the total number of items in inventory, the total value of all goods in inventory, and the average price per item.  For example:

 

UPC                            Item                             Quantity          Price    Value

1234567890123456    Altoads Mints             10                    $1.50   $15

1234567789012343    Cherrios Cereal           25                    $4.20   $105

1234929399231233    Crost Toothpaste         20                    $2.50   $50

Total Items in Inventory: 55

Total value of inventory: $170

Average price per item: $3.09

 

Exit

The application should verify if the user really intended to quit the application.  If not, the user is returned to the main menu.  If so, the application gracefully exits.

 


 

Point of Sale Application

The point of sale application is designed to be used by cashiers at point of sale kiosks with attached cash drawers (a computer based cash register).  This application must be easy to navigate and use with minimal training.

 

The POS application performs the following functions:

 

Welcome Screen

The user is presented with a welcome screen stating the name of the franchise, Norman’s Consumer Clearinghouse.

 

Cashier Identification

The welcome screen contains two text fields, one for the user to enter their ChasierID and one to enter a PIN (look in the provided file EMPLOYEES.TXT for pre-populated cashier information).  The PIN is not to be displayed on the screen in clear text.

 

If the CashierID and PIN do not match an existing employee in the system, the application returns an error and presents the user with the welcome screen.  If the CashierID and PIN match a user in the database the application displays the cashier’s first and last name followed by the main menu.

 

Menu

Upon successful authentication, the user is presented with the following options:

  • Price Check
  • List Inventory
  • Check Out
  • Exit

There should be a simple and intuitive way to navigate to each menu selection.

 

Price Check

This function is used when a customer would like to check the price of a specific item or find out how many units of an item are available.  The user is prompted to enter a UPC code.  The application is to return the UPC code, product name, quantity available, and price.  If the UPC was not found in the system the application returns an error message.

 

List Inventory
This function lists each item that is in inventory, the price per item, and the quantity on hand.

 

If there is time, the report could be enhanced by adding the extended value of each item (price x quantity on hand) followed by summary lines listing the total number of items in inventory, the total value of all goods in inventory, and the average price per item.  For example:

 

 

 

UPC                            Item                             Quantity          Price    Value

1234567890123456    Altoads Mints             10                    $1.50   $15

1234567789012343    Cherrios Cereal           25                    $4.20   $105

1234929399231233    Crost Toothpaste         20                    $2.50   $50

Total Items in Inventory: 55

Total value of inventory: $170

Average price per item: $3.09

 

Check Out

This function is used when a customer is finished shopping and it ready to pay for their goods.  The cashier is prompted for UPC and quantity of each item.  If the quantity entered is in excess of what is in inventory or the UPC code is not valid an error is displayed and the cashier is prompted to enter the appropriate UPC and quantity.  If the entries are valid the name, price, and extended price (quantity * price) of the item is displayed and the items are removed from inventory.  After each item the cashier has the opportunity to either enter another UPC and quantity or complete the sale.  When the sale is complete the terminal should display a sales summary, one item per line, with the UPC, item name, price, quantity, and extended price.  At the bottom the application is to display the subtotal, 7% tax, and total.  For example:

 

Thanks for shopping NCCStore

Your Cashier today was Jill Jones

 

1234567890123456    Altoads Mints             2 @ $1.50       $3.00

1234567789012343    Cherrios Cereal           1 @ $4.25       $4.25

Subtotal:                      $7.25

Tax (7.00%):               $0.51

Total:                           $7.76

 

 

At this point in time NCCStore accepts only cash payments.

 

Exit

The application should verify if the user really intended to quit the application.  If not, the user is be retuned to the main menu.  If so, the application gracefully exits.

 

 

 

 


 

Line Manager Web Site

The Line Manager Web Site is designed to allow the manager to remotely monitor and administer the inventory from any internet connected PC without installing any additional software.

 

The web site is to contain the following features:

 

Welcome Screen

Upon initial load, the user is presented with some franchise information such as logo, store name, short introduction, etc.

 

Menu

From the welcome screen there should be an easily identifiable menu containing the following options:

  • Log In
  • Lookup Product

 

Once a user has successfully logged in, the Log In option is removed and the following three options are added:

  • List Inventory
  • Add to Inventory
  • Log Out

 

Lookup Product

This function is available without requiring the user to log in.  The application prompts the user to enter part or all of the name of a product.  The application then displays the UPC, name, thumbnail picture, and price of all products containing the search string.  If no results match the search string the application is to return an error

 

Log in

The user is prompted for a username and password (see USERS.TXT).  If the username/password combination is invalid the application is to present an error and return to the login screen.  Otherwise the application will display the user’s full name, remove the Log In option, and present the List Inventory, Add to Inventory, and Log Out options.

 

List Inventory

This option is only be available once a user has successfully logged in.  The application is to list all products alphabetically (see INVENTORY.TXT), 10 entries per page, with a thumbnail picture, name, quantity on hand, and price.  The application will provide a button or link to invoke the Update Inventory function.

 

 

 

 

 

 

Update Inventory

This function is invoked from the List Inventory function and therefore is only available once a user has successfully logged in.  The application should present a larger image (between 100x100 and 500x500 pixels) of the item and allow the user to update the name, quantity on hand, price, and image.

 

Add to Inventory

This option is only be available once a user has successfully logged in.  This function allows the line manager to add a new product to the inventory.  The user is prompted for UPC, product name, price, quantity, and image.  If the UPC is already found in the database the user is presented with an error, otherwise the product is be immediately added to the inventory.

 

Log Out

This function is only available when a user is logged in.  The application is to verify if the user really intended to log out.  If not, the user is returned to the main menu.  If so, all personal information is cleared and the user is returned to the initial log in screen.

 


 

Documentation Requirements

 

Three types of documentation are to be provided:

 

Run Book (REQUIRED)

This document has specifications filed with management for maintainability of the application.  The following information should be supplied:

  • Languages used
  • Database/Data file schema information
  • Any applicable user/login information
  • Any special features of the application(s)

 

There is a Run Book form enclosed in the packet.  This MUST be filled out and turned in for your submission to be scored.

 

User Manual

This document should provide information useful to the end user.  It specifies how the user is to authenticate to the system and explains the use of each function.  A description of all error cases, what might cause them, and what is required to correct the error is provided.  System requirements and “Frequently Asked Questions” sections are to be included.  Screenshots of the application should be incorporated into the manual.

 

Management Reference

This includes project management documentation such as Unified Modeling Language diagrams, data flow diagrams, PERT and/or Gantt charts as well as any other relevant development documentation. 

 


 

Team# _______ Runbook

 

THIS MUST BE TURNED IN FOR

YOUR SUBMISSION TO BE SCORED

 

 

Please check which paths the team attempted:

Inventory Management                 Point of Sale             Line Manager Web Site

 

Specify what languages were used and for which interface:________________________

________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

Specify what data storage mechanisms (flat files, databases, etc) where used and for which interface:___________________________________________________________

________________________________________________________________________________________________________________________________________________

________________________________________________________________________

 

 

Provide any usernames and passwords necessary, indicating which interface they are to be used with: ____________________________________________________________
________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

Please list any special features of the application(s):______________________________

________________________________________________________________________________________________________________________________________________________________________________________________________________________