Introduction

The purpose of this document is to provide a more technical requirement specification for our on-line pizza delivery system, "Pizza Bytes". It is broken down into two functional parts: User Interface and Data Base specification. This document is directed towards the developers of "Pizza Bytes". It provides a high level design description of the system using graphical interpretations and data flow diagrams.

1. User Interface

The system allows for one welcome page that links to several pages. In our implementation, these pages are: Ordering pages, Profile pages and a Status page. See figure 1 for the layout of the user interface.

A. Ordering

The Ordering process allows the user to put together the desired order, . Then the user is taken to a third page which shows the billing information and asks for either the address information of the user or for the password and login information if the user already has a profile created. When all is done, the user is taken to the Status page.

B. Profile Page

The Profile page allows the user to either update an existing profile or to create a new profile. The profile consists of the user's address as well as the method of payment desired.

C. Status Page

The Status Page asks the user for a number which identifies the order and displays information about it. This number is given to the user when the order is completed.

D. Send Email Comments

2.	Database Subsystem

The Database subsystem for the Pizza Bytes online ordering system will be divided into 3 separate storage units. These storage units will govern the information pertaining to USER, PRODUCT, and ORDER information respectively. They have been separated to ensure that if one database was to go offline for any reason, the other two would continue to work effectively should the need arise. Each of the databases have been outlines below with a full description of their hierarchy.

A.	USER database

The USER database will store all information that is relative to the consumers for the Pizza Bytes system when they create a new account.

1.	USER TABLE

This table will contain all single entry information for the various users of the Pizza Bytes system. It will consist of the following fields.

a)	User Identification Number (KEY)

An eight-character string with each character enumerated to alphanumeric values (0-9 and a-z). This allows for 368 (2.8 quadrillion) possible user entries for the Pizza Bytes system

b)	User Name

A 256 character delimited field that will hold the favoured title and name of the consumer

c)	User Address/Location

A 256 character delimited field that will hold the delivery address for the consumer

d)	User Postal Code

A six-character delimited field that will hold the Postal code for the consumer

e)	User Telephone Number w/Area Code

A ten-character string with each character enumerated to decimal values 0-9. The first three values represent the area code for the consumer while the final seven represent the telephone number.

f)	User Preferred Outlet

A four character alphanumeric string to represent the ID of the User's preferred pizza outlet. Four characters will give 364 (1.7 million) unique combinations.

g)	User Special

A 256 character delimited field that will hold a description of any special offers that apply to an individual user (i.e. free pizza/ points system).

2.	USER PREFERENCES TABLE

For faster ordering, the User can save a preferred order in the Pizza Bytes database. The following fields have been outlined for this table.

a)	User Identification Number (PARTIAL KEY)

An eight-character string with each character enumerated to alphanumeric values (0-9 and a-z). This allows for 368 (2.8 quadrillion) possible user entries for the Pizza Bytes system. This forms a partial key with Product Identification Number.

b)	Product Identification Number (PARTIAL KEY)

A four character alphanumeric string to represent the ID a specific product available on the menu. Four characters will give 364 (1.7 million) unique combinations. This forms a partial key with User Identification Number.

c)	Product Quantity

A value up to 256 to represent the quantity of the product ordered

d)	Product Total Cost

A currency field that will hold the total cost of the product taking into account the quantity ordered

e)	Alterations

A 256 character delimited string with User's notes of specific changes to the product.

3.	FRANCHISE OUTLET TABLE

This Table will contain the information pertaining to the franchised outlets available to the Pizza Bytes system to send consumer's orders to.

a)	Outlet Identification Number (KEY)

A four character alphanumeric string to represent the ID of the User's preferred pizza outlet. Four characters will give 364 (1.7 million) unique combinations. This is the key for this table. It represents the unique ID for each franchise outlet in the database.

b)	Outlet Name

A 256 character delimited field that will hold the Name of the franchise outlet

c)	Outlet Location

A 256 character delimited field that will hold the address for the outlet

d)	Outlet Postal Code

A six-character delimited field that will hold the Postal code for the outlet

e)	Outlet Telephone Number w/Area Code

A ten-character string with each character enumerated to decimal values 0-9. The first three values represent the area code for the outlet while the final seven represent its telephone number.

B.	ORDER database

The ORDER database will store all information that is relative to the active orders for the Pizza Bytes system.

1.	ORDER TABLE

This table will contain all single entry information for active orders of the Pizza Bytes system.

a)	Order Identification Number (KEY)

A four character alphanumeric string to represent the ID of an active order. Four characters will give 364 (1.7 million) unique combinations. It is the KEY for this table

b)	User Identification Number

An eight-character string with each character enumerated to alphanumeric values (0-9 and a-z). This allows for 368 (2.8 quadrillion) possible user entries for the Pizza Bytes system. It specifies the user that owns the order.

c)	Pizza Outlet Identification Number

A four character alphanumeric string to represent the ID of the User's preferred pizza outlet. Four characters will give 364 (1.7 million) unique combinations. This is the key for this table. It represents the unique ID for each franchise outlet in the database.

d)	Current Status

A 256 character delimited string containing the latest status of the order.

e)	Final Total

A currency field that will hold the final cost of the order taking into each of the products ordered.

f)	Method of Payment

A one byte field that will represent the various methods of payment available in the Pizza Bytes system. (I.e. cash, visa, COD, etc.)

g)	Credit Number

A sixteen-character field that holds the number on the credit/banking card being used for payment

h)	Credit Expiry

A four-character field that holds the expiry date for a credit card being used for payment

2.	ORDER PRODUCTS TABLE

a)	Order Identification Number (PARTIAL KEY)

A four character alphanumeric string to represent the ID of an active order. Four characters will give 364 (1.7 million) unique combinations. This forms a partial key with Product Identification Number.

b)	Product Identification Number (PARTIAL KEY)

A four character alphanumeric string to represent the ID a specific product available on the menu. Four characters will give 364 (1.7 million) unique combinations. This forms a partial key with Order Identification Number.

c)	Product Quantity

A value up to 256 to represent the quantity of the product ordered

d)	Product Total Cost

A currency field that will hold the total cost of the product taking into account the quantity ordered

e)	Alterations

A 256 character delimited string with User's notes of specific changes to the product.

3.	ORDER STATUS TABLE

a)	Order Identification Number (PARTIAL KEY)

A four character alphanumeric string to represent the ID of an active order. Four characters will give 364 (1.7 million) unique combinations. This forms a partial key with Status List Time Stamp.

b)	Status List Time Stamp (PARTIAL KEY)

A Date/Time data type that holds the time that the order's status change took place. This forms a partial key with Order Identification Number.

c)	Status List Description

A 256 character delimited string containing the status description.

C.	PRODUCT database

Talk about the purpose of the Product database with respect to the pizza bytes online ordering system. Briefly describe its individual contribution to the system. Is this a static or a dynamic database? The database will be tabulated with the following fields.

1.	PRODUCT TABLE

a)	Product Identification Number (KEY)

A four character alphanumeric string to represent the ID a specific product available on the menu. Four characters will give 364 (1.7 million) unique combinations. This is the KEY for this table

b)	Product Title

A 256 character delimited string containing the Product title.

c)	Product Description

A 256 character delimited string containing the Product description.

d)	Product Cost

A currency field that will hold the cost of the product.

e) Product Image

A path description to a file containing a sample image of the product