- Introduction
- Households
- Adding a customer
- deleting a customer
- modifications to customer information
- suspend delivery to a customer
- search of customer records
- customer interface
- customer screen
- mode buttons
- description of data fields
- Publications
- adding a publication
- deleting a publication
- editing a publication information
- search of publication
- publications interface
- adding a publication to the database
- deleting a publication
- modifying publication information
- search on a publication
- the publications interface
- mode buttons
- description of data fields (upper half of screen)
- description of data fields (lower half of screen)
- Carrier functions
- adding a carrier
- deleting a carrier
- modifications to carrier information
- carrier interface
- adding new carrier
- changing carrier information
- deleting a carrier
- search
- mode buttons
- description of data fields
- Routes
- adding a new route
- deleting a route
- displaying route information
- generating printout
- routes interface
- mode buttons
- description of the data fields
- Billing system
- Summary reports
- Management plan
- system structure
- households
- publications
- carriers
- routes
- billing information
- summary reports
- functions
- project features
- team structure
- minimal system
- summary
- Appendix A
- data flow diagram
- entity relationship diagram
- context diagram
- data dictionary
- Appendix B
- customer
- publications
- carriers
- routes
- billing system
- Appendix C
Publication Home Delivery System
INFO SYSTEMS Inc.
Design Specifications
The Publication Home Delivery System (PHDS) is a user interactive computer system designed specifically for a newspaper and magazine distributor. Its objective will be to manage existing and potential new customers, publications, carriers, routes, and billing information and summary reports as required by this type of business in today's market.
The system will be under the authority of the distribution manager whose task will include the coordination of the entire delivery system. Operators, working under the manager, can be easily trained to efficiently and effectively use the system. The system will make seemingly routine tasks easier by methodically organizing the all important aspects, from adding a new customer to printing summary reports. Once in place, the amount of time needed to perform tasks and update the data base in the delivery system will be reduced, requiring only a few mouse clicks and key strokes to accomplish most tasks.
The system consists of six main sections. They are described briefly here to provide an overview as to their function. It should be noted that the report generating feature will be combined with major sections to simplify the layout and function. A more detailed description, along with the proposed interface, can be found in the latter pages of this document. There are six main sections:
- Households -defined as the customers of the delivery system
- Publications -defined as the publisher of the magazines and newspapers delivered by the service
- Carriers -defined as those individuals hired to deliver the newspapers and magazines
- Routes -households to deliver to, order defined by the business
- Billing -generates bills for all households on the system. Acts as the accounting for the business, keeping track of all financial transactions and status of customer accounts. Note: Due to expected limitations the billing system will not be implemented
- Summary Reports -used to generate summary reports for specified primary and secondary search keys such as a listing of households that subscribe to one particular publication
The database managed by the system is expected to be quite large and it is therefore essential that the system perform all required tasks as rapidly as possible. This will be accomplished primarily by the high speed computer recommended as well as efficient algorithms used to access the data.
The system will be designed using Microsoft Access so we require that there be minimal system specifications. Following current industry trends, the system will be run on an IBM compatible workstation. The system will require a minimum of a 486DX processor, 16MB of RAM, SVGA color monitor, 200MB of free disk space, a mouse (or similar pointing device), and access to two printers, a line printer to cheaply print route information for the carriers and a high speed laser printer for quality summary reports. Further we strongly recommend the use of a secondary backup medium such as a tape drive or read/write optical disk to ensure maximum information safety.
Since Microsoft Access is a graphic based program we require that the system use Microsoft Windows 3.1 or higher as well as MSDOS 6.0 or higher. Microsoft Access is also required to run the program.
Our goal is to develop a system that will function efficiently while maintaining simplicity. Our interface will be very simple, to address all user skill levels from beginner to expert. The proposed interface can be found with the detailed sections found below.
Documentation will be thorough and complete. Training of the users will be made available by the developers of the system to ensure a complete understanding of its operations. It is expected that the system will greatly simplify the publication delivery service by reducing the overall amount of time required for setup and maintenance, as well as facilitate the day-to-day operations of the business.
Return to Table of Contents
This data base contains customer reference information. Specifically the system will contain the customers name, address, phone number, the status of their delivery, the publications they receive, their route information, and any notes specific to user requests or needs. This information will be entered via a keyboard into the computer or modified/edited by the computer using the following functions which will be selected by the user using either the mouse, or specific key strokes. For route name, a pop-up list of all available route names will be available to select from. The route postal code will be matched to a route and this route will appear either highlighted in the list, or displayed as a suggestion.
Adding a Customer
The data mentioned above will be entered into fields on the computer screen. If any data fields are left blank, except the notes information, (there will be a not applicable default for the notes field), or the incorrect format of information is entered, the system will prompt the user to enter data for all fields or correctly reenter the data in the proper format. The user will not be allowed to continue until all record fields are complete. An example of the transaction adding a customer, and the format for the data to be entered is shown below.
- the user selects the add a customer function
- enter the customer name
e.g., Doe, John (last name, first name)
- enter the customers address
e.g., 123, Main Street (street name)
Calgary, AB (city, province)
T5W 3K3 (Canadian postal code)
- enter the user phone number
e.g., (403) 555-1234 ((area code) phone number with dash)
- select the users publications from a list of publications offered by the company
- fill in special data for notes
e.g., be sure to put paper in mail box not on the step
- select a route from pop-up list and systems suggested route
- enter the status of delivery
e.g., suspended indefinitely, suspended for a specific time period, or regular delivery
NOTE: If any mistakes are made in entering the data they can be corrected using the edit function described below.
Deleting a customer
A user selecting this function would enter the Search of Customer Records interface described below. The system would return the data from the search for this customer in the data base, and the customers information would be displayed to the screen. The user could now choose to remove the customer information from the database at this time, or exit from this function and do nothing.
When a customer has a balance other than zero, a warning should be issued and confirmation asked for. The confirmation process should offer the option of removing the customer information, remove the customer information and print an invoice or to exit. Once a customer is removed, the route and products data-bases should be updated.
NOTE: The unique customer key data for searches has not been determined. It has been assumed that a customer number would be given to each subscriber to make the search key unique. The unique search key should be the last two digits of the year they joined-up followed by the first two letters of their route name, followed by a 3 digit number that is unique within the route. A change in the route of a customer should trigger a change in their reference number.
Modifications to customer information
In this function the user uses the Search on Customer Records interface as described below, after which the system would search for the customer record and display it to the screen. At this point all data fields could be accessed by tabbing to them, and re-entering the correct, or new customer information via the keyboard. This data would then be saved in the data base.
NOTE: Specific security measures are not required so it has been assumed that all fields of a customer record can be changed at any time by any person with access to the system.
Suspend Delivery to a customer
If a customer does not require delivery for a period of time, they could contact the delivery service and request a suspension of delivery. The user would search for the customer in the database by the standard search on customer records and the data field for status would be set for delivery suspension or the data field would be set for delivery suspension and the data field for the date of delivery continuation filled in (This could be replaced with a time interval for which delivery is to be suspended, instead of entering a date). It is assumed that delivery charges are suspended at this time and the account charges, or credits will carry over to when the suspension is discontinued.
The suspension would be ended by entering data as above except the status data field would be set for delivery continuation and charges/credits would be reinstated.
Searching for a customer
The user starts a search using route number, route name, customer name, phone number, postal code, address or reference number. The search finds any unique match or gives the user a list of multiple matches to select from. The list will be formatted to have one customer per line, and any data on a customer not displayed will be accessible via a button click. Once a single customer is selected, all their information is displayed on screen.
Customer Interface
Customer Screen
You enter this screen by clicking on the "Customer" tab on the right hand side of the screen. This window allows the user to:
- Add new customers to the database
- View and/or change a customer's personal information (e.g., address, phone number) and/or their subscription/delivery information
- Delete inactive customers
Any information which is entered on this screen is then referenced to all other databases and updates are made where appropriate. This is accomplished using three modes and nine functions which are described below.
Modes and Buttons
New
When you enter this mode by selecting the "New" radio button in the upper left portion of the screen, the personal information fields will be cleared, and the bottom portion of the screen will change to a blank delivery information form. The save and cancel buttons will become active and the user may enter all the necessary information to add a new customer. The user is forced to select save or cancel before switching to another mode or tab.
Edit
When you select the "Edit" radio button the text fields will become active, the delivery information will be displayed in the lower half of the screen and may be changed as required. As in "New", save and cancel become active and one or the other must be selected before the user may switch to another mode or tab.
Search
This is the default mode for the customer screen. When in this mode you may select a customer from the listbox on the lower half of the screen, or type in the personal information fields to narrow the list down. The two buttons at the bottom of the listbox allow you to restart your search or end the search, which activates the edit mode on the currently selected customer in the listbox.
Delete
This button is available in the edit or search mode. When it is pressed the system asks for confirmation that the currently selected customer should be removed from the database in a window with a choice of confirm delete or cancel.
Save
This button is active in new and edit modes. When pressed the information which is currently displayed on the screen is saved to the database and the system returns to search mode.
Cancel
This button is active in new and edit modes. When cancel is pressed the information which has been entered or changed is forgotten by the system which returns to search mode without modifying the database.
Help
This button is active at all times and will bring up a help window when it is pressed, which will provide instructions on how to use the system.
Quit
This button is active at all times. If changes have been made but not saved it will ask for confirmation to exit with, or without saving. Otherwise it exits the system immediately.
Subscribe
This button is active in new and edit modes. It will add the currently selected item from the publications list to the customer's subscriptions list.
Unsubscribe
This button is active in new and edit modes. It will remove the currently selected item from the customer's subscriptions list.
New Search
This is only active in search mode. It allows the user to return to the start state of the search screen, with blank fields and the complete list of customers in the listbox.
Done Search
This button is active when one customer has been selected, or otherwise uniquely identified, by the user. Pressing this button activates the edit mode with that customer.
Description of data fields
- Customer
- A unique id number for the customer
- Surname
- The last name of the customer (e.g., Smith)
- Given name
- The first name of the customer(e.g., John)
- Address
- The Street address of the customer (e.g., 3715 Centre Street N, Apt B)
- City
- The city the customer lives in, may be selected from a list of cities the company serves (e.g., Calgary)
- Province
- The province the customer lives in, may be selected from a list of provinces the company serves( e.g., Alberta)
- Postal Code
- A six digit form fill in (e.g., T2N 1A4)
- Route
- The name of the route the customer is assigned to, may be selected from a list of all routes
- Phone number
- The customer's home phone number including area code
(e.g., (403) 280-2763)
- Publications
- A listbox containing the name of all publications offered and their price
- Subscriptions
- A listbox containing the name and expiry date of all the customer's subscriptions
- Balance Owing
- The current outstanding balance for the customer's subscriptions
- Delivery Status
- Radio buttons which allow selection of active or suspended.
From
- The date a suspension of delivery starts.
To
- The date a suspension of delivery ends(may be indefinite).
- Notes
- A text entry box which can be used for miscellaneous notes the user may want to add about a customer.
Return to Table of Contents
Adding a publication
When creating a new publication, the user has to enter the following:
- Name
- Publisher
- Supplier Name
- Supplier Phone Number
- Subscription Rate
- Type of Publication (e.g., Newspaper, Magazine)
- Frequency of Delivery (e.g., Daily, Weekly, Monthly)
- General Description of the Publication
- Total Number of Subscribers is set to zero
- Key words(e.g., Automotive, trucks, tractor-pull)
Before the above information is stored, the system will ask for confirmation so that the user can make necessary changes. The system will also check for duplicate publication. It will not allow the addition of a new publication that is already in the database.
NOTE: Any mistakes that are not corrected here can be addressed by the edit function described below.
Deleting a publication
The user has to select from a list or enter the name of a publication that is to be deleted. Otherwise, it responds by displaying all information of the publication. The user confirms the delete action. All subscribers of the publication should be notified, but this is not required by the system. Nevertheless, their accounts should be updated.
Editing publication information
Any information of a publication can be changed. The user selects from a list or enters the name of the publication. The system returns an error if the publication does not exist. Otherwise, it responds by displaying all information of the publication. The user then can make modification in the appropriate field(s). When adjustment is made in price, the new price only applies to new subscribers, it does not affect existing subscriptions.
Search of publication
All information of a publication can be listed on the screen by selecting or entering the publication name. The system returns an error if the publication does not exist. Information displayed here is for view only and it cannot be modified.
Publications Interface
Adding a publication to the database
The interface must be accessed in the following way to add a new publication:
- Click on the publications file
- Click on the radio button marked New (all data fields will be cleared on the form)
- Enter the appropriate data in the data fields
- Publisher Name
- Distributor Name
- Distributor Phone Number
- Publication Type (newspaper, magazine)
- Frequency of Publication
- Description of publication
- Keywords describing publication (e.g., dogs, tractor pulls, computers)
- Visually check data in form fields
- Click on the Save button to update the database
The information entered will be checked against duplicates in the database. Mistakes not corrected here can be corrected by the modify function mentioned below.
Deleting a publication
A user wanting to remove a publication from the database will have to perform the following operations on the interface to successfully delete a record. The user will click on the search button of the interface. The data fields will be cleared and they will enter the name, publisher, or distributor information of the publication to be deleted. A list of matching entries will be displayed in a scrolling list box in the lower half of the screen.
The user will then select the desired publication by double clicking on the proper entry in the scrollable list. All the data on that publication will be written to the screen in the forms fields.
The user will click on the delete button located in the button bar at the top of the screen. The user will be prompted to insure that this is the publication record they actually want to delete. If the information is to be deleted from the database the user will click O.K. button otherwise the user will cancel the operation using the cancel button, and the database will remain unchanged.
Modifying publication information
A user wanting to edit a publication record in the database will have to perform the following operations on the interface to successfully modify the record.
The user will click on the edit button of the interface. At this point the user can tab, or use the mouse to enter the data fields and change the information in them. All the data on that publication will then be written to the screen in the forms' fields.
Search on a publication
Users may wish to see information on a certain publication, or distributor. If this is the case, the user will have to use the search function following these steps to successfully retrieve this information from the database.
The user will select the search radio button. This will clear the bottom portion of the form and replace it with a scrollable list of all publications available in the database. A publication can be selected from the list by double clicking on a publication in the list, or entering information into the data fields.
Entering data into the data fields dynamically searches for matches in the database and shows the matches or close matches in the scrollable list. A search can be redone on new data, or if the search is complete the system will automatically enter the edit mode.
The Publications Interface
The publications screen consists of a form containing publication information that are discussed below, and a group of functions to manipulate, locate, or add to the database.
The upper portion of the screen contains publication information, that is the data fields that the system can search on. In the lower portion of the screen is a list of publications.
Modes & Buttons
New
The use of this function allows the user to add a new publication to the database. After clicking on the new function radio button, all remaining radio buttons but save, quit, cancel, and help are not available. Any other group of data (e.g., Customer data, Carrier data) can not be accessed until the new function is complete, or cancelled or quit.
Edit
The edit function allows the user to modify publication data, or correct data entry errors. During this functions mode, all buttons but save, quit, cancel, and help are not available. Any other group of data (e.g., Customer data, Carrier data) can not be accessed until the edit function is complete, or cancelled or quit.
Subscribe/Unsubscribe
In the lower half of the publication screen are two scrollable lists. The list on the left is a list of all publications available. On the right is a list of the publications a distributor supplies. The user can either Subscribe or Unsubscribe a publication by highlighting the desired publication then using either the Subscribe of Unsubscribe button.
Delete
Selecting to delete a publication from the database is done by clicking on the button after the correct information is displayed on the screen after a search has been completed. During this function, all buttons but save, quit, cancel, and help are not available. Any other group of data (e.g., Customer data, Carrier data) cannot be accessed until the delete function is complete, or cancelled or quit.
Search
The search mode is used to locate information on a particular publication record in the database. During this function, all buttons but save, quit, cancel, done search, new search, and help are not available. Any other group of data (e.g., Customer data, Carrier data) can not be accessed until the new function is complete, or cancelled or quit.
Done Search
This button is only available in the search mode of the system. Pressing this button after either confirming the publication information in the data field in the top portion of the screen, or selecting a publication from the list at the bottom of the screen completes the information in the lower half of the screen and automatically enters the user into edit mode.
New Search
This button is only available in the search mode of the system. Pressing this button after either confirming the publication information in the data field in the top portion of the screen is not what was intended to be searched for all data field in the screen are cleared the list is repositioned at the top, and a new search can be performed.
Save
This button closes the new, edit, and delete modes. Selecting this button updates the database with the changes that are done in the functions mentioned previously.
Cancel
Cancel lets a user escape from the function they are in without changes to the database.
Quit
This button lets the user exit from the program in any function or state at any time.
Help
Pressing the help button brings up a context sensitive hypertext help window to assist the user in correctly accessing, and manipulating the database.
Description of Data Fields
- Publication Name
- name of publication that is delivered by company
e.g., National Geographic
- Publisher
- name of publisher of publication
e.g., The Benjamin/Cummings Publishing Company
- Distributor
- name of company that distributes the publication
e.g., Joes Distribution
- Distributor Phone
- phone number of company that distributes the publication
e.g. (403) 555-1234
- Publication Type
- type of publication
e.g., newspaper, magazine
- Frequency
- frequency that publication is distributed and delivered
e.g., weekly, monthly, daily, etc.
- Number of Subscriptions
- number of people in delivery area that receive a publication
e.g., 5004, 100, 4, 60000
- Description
- description of what information is contained in or written about in the publication
e.g., cats and their care/health, computers and how to get them to work for you
- Key Words
- word that describe information in or written about in the publication
e.g., Monster Trucks, Dogs, Computers
Return to Table of Contents
The data base must be able to record and keep track of the carriers and the routes to which they deliver. Items recorded into the data base will be the carriers name, address, phone number, and the routes they deliver to. These records will be created and modified using functions similar to the ones mentioned in household specifications.
Adding a carrier
The user selects the function, and enters the data via the keyboard as shown in the script below.
- the user selects the add a carrier function
- enters the carriers name, e.g., Doe, John
- enters the carriers address
e.g., 456 Center Street (street)
Calgary, AB (city, province)
T8W 4E5 (Canadian postal code)
- enters the carriers phone number, e.g., (403) 555-1234
- enters the routes the carrier delivers to
e.g., R1 R4 R6 (route #1 route #2 route #3)
The user will be shown the entered information when finished and asked for conformation that the information is correct. Errors can now be corrected, or the function can be exited adding the information to the data base.
NOTE: If any mistakes are made in entering the data they can be corrected using the edit function described below.
Deleting a carrier
In this function the user enters or selects from a list the carriers name and performs a search to display it to the screen. The user then print the carrier routes for reassignment to other or new carriers, their routes are deleted, and finally the carrier can be removed from the data base.
NOTE: If routes are still assigned to the carrier then the carrier cannot be removed until their routes have been printed out.
Modifications to carrier information
In this function the user enters or selects from a list, the carrier's name. After which the system searches for the carrier record and display it to the screen. At this point all data fields can be accessed by tabbing to them, and reentering the correct, or new carrier information via the keyboard. This data is then saved in the data base.
Carrier Interface
The Carrier screen
You enter this screen by clicking on the "Carrier" tab on the right hand side of the screen. This window allows the user to:
- Add new carriers to the database
- View and/or change a carrier's personal information (e.g., address, phone number) and/or their subscription/delivery information
- Delete carriers
Add a new carrier
To add a new carrier, click "new". Then enter the following information in the appropriate fields.
A carrier can be assigned to one or more delivery route(s). In order to accomplish this, select the route ID that is to be assigned to the new carrier in the "Routes" list box on the left side of the screen. Then click "Add Route >>". Repeat this process if multiple routes are to be assigned to the carrier. All carrier's responsible route(s) will be listed in "Carries's routes" list box.
To store the carrier's information, click "Save". Otherwise, click "Cancel".
Online assistance is always available by clicking "Help" and users can exit
the system anytime by clicking "Quit".
Changing carrier information
Make sure the system is in Carriers mode by selecting the "Carriers" tab on the right of the screen. To modify an existing carrier's information, click "Edit". Then select the correct carrier either by typing the carrier's name or by highlighting the name in the "Carriers" list box. If the carrier's name entered is not in the database, a message will return to the user. Otherwise,
the carrier's information will be displayed on the screen. Each field can be accessed with the tab key or with the mouse.
To update a personal information field, simply place the cursor in the
appropriate field and type over the old data. To assign more route(s) to an
existing carrier, select a new route ID from the "Routes" list box and
click "->". To remove a route from a carrier, select the route from the
"Carrier's routes" list box and click "<-".
To store the new information, click "Save". Otherwise, click "Cancel".
Online assistance is always available by clicking "Help" and users can exit
the system anytime by clicking "Quit".
Deleting a carrier
Make sure the system is in Carriers mode by selecting the "Carriers" tab on
the right of the screen. To remove an existing carrier from the database, click "Search". Then select the correct carrier either by typing the carrier's name or by highlighting the name in the "Carriers" list box. If the carrier's name entered is not in the database, a message will return to the user. Otherwise, the carrier's information will be displayed on the screen. All the data displayed here is for view only and cannot be modified.
To take the carrier off the database, click "Delete". Otherwise, click "Cancel". Online assistance is always available by clicking "Help" and users can exit the system anytime by clicking "Quit".
A carrier can only be deleted when there is no route assigned to that carrier. On how to relieve a carrier's duty on a route, please refer to "Changing carrier information".
Search of carrier
Make sure the system is in Carriers mode by selecting the "Carriers" tab on the right of the screen. To display an existing carrier information, click "Search". Then select the correct carrier either by typing the carrier's name or by highlighting the name in the "Carriers" list box. If the carrier's name entered is not in the database, a message will return to the user. Otherwise, the carrier's information will be displayed on the screen. All the data displayed here is for view only and cannot be modified.
Online assistance is always available by clicking "Help" and users can exit the system anytime by clicking "Quit".
Any information which is entered on this screen is then referenced to all other databases and updates are made where appropriate. This is accomplished using the modes or buttons which are described below.
Modes & Buttons
New
The use of this function allows the user to add a new carrier to the database. After clicking on the new function radio button, all remaining radio buttons are not available. Any other group of data (e.g., Customer data, Publication data) can not be accessed until the new function is complete, or cancelled or quit.
Edit
The edit function allows the user to modify publication data, or correct data entry errors. After clicking on the new function radio button, all remaining radio buttons are not available. Any other group of data (e.g., Customer data, Publication data) cannot be accessed until the edit function is completed, or cancelled or quit.
Subscribe/Unsubscribe
In the lower half of the publication screen are two scrollable lists. The list on the left is a list of all routes available. On the right is a list of the routes attributed to a carrier. The user can either add a Route or remove a Route a publication by highlighting the desired publication then using either the Add a Route or Remove a Route button.
Delete
Selecting to delete a publication from the database is done by clicking on the button after the correct information is displayed on the screen or after a search has been completed.
Search
The search mode is used to locate information on a particular carrier record in the database. During this function, all buttons but save, quit, cancel, done search, new search, and help are not available. Any other group of data (e.g., Customer data, Publication data) can not be accessed until the new function is complete, or cancelled or quit.
Done Search
This button is only available in the search mode of the system. Pressing this button after either confirming the carrier information in the data field in the top portion of the screen, or selecting a carrier from the list at the bottom of the screen completes the information in the lower half of the screen and automatically enters the user into edit mode.
New Search
This button is only available in the search mode of the system. Press this button to initiate a new search. The data fields in the top portion of the screen are cleared, and a new search can be performed.
Save
This button closes the new, edit, and delete modes. Selecting this button updates the database with the changes that are done in the functions mentioned previously.
Cancel
Cancel lets a user escape from the function they are in without changes to the database.
Quit
This button lets the user exit from the program in any function or state at any time.
Help
Pressing the help button brings up a context sensitive hypertext help window to assist the user in correctly accessing, and manipulating the database.
Description of data fields
- Surname
- The last name of the carrier (e.g., Smith)
- Given name
- The first name of the carrier (e.g., John)
- Address
- The Street address of the carrier (e.g., 3715 Center Street N, Apt B)
- City
- The city the carrier lives in, may be selected from a list of cities the company serves (e.g., Calgary)
- Province
- The province the carrier lives in, may be selected from a list of provinces the company serves( e.g., Alberta)
- Postal code
- A six digit form fill in (e.g., T2N 1A4)
- Phone number
- The carrier's home phone number including area code (e.g., (403) 280-2763)
Return to Table of Contents
Adding a new route
When adding a new route, a route name and a carrier have to be assigned to that route. In addition a list of postal codes to define the boundaries of the route. Note that postal codes may be assigned to multiple routes (ie. the same postal code can be found in more than one route). This is to help find which route a new customer should be placed on. The postal codes, customer reference numbers, and addresses of all the households and the number of households belong to the new route are also needed.
Deleting a route
Entering or selecting a route will remove it, but a route can only be removed if there is no household in that route, i.e., the number of households is zero.
Displaying route information
When a valid route name is entered or selected from a list, the user has the option of viewing either all household belonging to the route or the total number of deliveries for each product on the current day. An error message will be displayed if the route name is invalid.
Generating a Printout
A printout which contains route name, carrier name, carrier address, carrier phone number, route household addresses and status, and the publication(s) received by each household is generated and given to the carrier before he or she makes the deliveries. The user can print either a single route or the entire set of routes or a subset of routes may be selected from a list.
Routes screen
You enter this screen by clicking on the "Routes" tab on the right hand side of the screen.
Adding new routes
The data mentioned above will be entered into fields on the computer screen. If any data fields are left blank (there will be a not applicable default for the notes field), or the incorrect format of information is entered, the system will prompt the user to enter data for all fields or correctly reenter the data in the proper format. The user will not be allowed to continue until all record fields are complete. An example of the transaction adding a new routes, and the format for the data to be entered is shown below.
- the user selects the new route function
- enter the route name
- enter the carrier Surname
- enter the carrier Given Name
- select the users publications from a list of publications offered by the company
- fill in the carrier #
NOTE: If any mistakes are made in entering the data they can be corrected using the edit function described below.
Deleting a Route
A user selecting this function would enter the Search of Route Records interface described below. The system would return the data from the search for this route in the data base, and the routes information would be displayed to the screen. The user could now choose to remove the route information from the database at this time, or exit from this function and do nothing.
Modifications to route information
In this function the user uses the Search on Route Records interface as described below, after which the system would search for the route record and display it to the screen. At this point all data fields could be accessed by tabbing to them, and reentering the correct, or new route information via the keyboard. This data would then be saved in the data base.
NOTE: Specific security measures are not required so it has been assumed that all fields of a route record can be changed at any time by any person with access to the system.
Search on route records
The user starts a search using route number, route name, carrier name and carrier number. The search finds any unique match or gives the user a list of multiple matches to select form. The list is formatted to have one result per and any data on a route not displayed will be accessible via a button click. Once a single route is selected all its information is displayed on screen.
Route Interface
Route screen
You enter this screen by clicking on the "Route" tab on the right hand side of the screen. This window allows the user to:
- Add new Route to the database
- View and/or change a Route information
- Delete routes
Any information which is entered on this screen is then referenced to all other databases and updates are made where appropriate. This is accomplished using three modes and nine functions which are described below.
Modes & Buttons
New
The New radio button, when selected, clears all information from the datafields and list boxes, allowing the user to enter the pertinent information into the fields. The Save and Cancel buttons are then used to either store or discard the entered information.
Edit
The Edit radio button, when selected, allows modification of appropriate fields on the screen. The Save and Cancel buttons are then again used to either store or discard the changes.
Delete
The Delete radio button, when selected, allows the deletion of the route that is currently on the screen. However, a route can only be deleted if there is no household on that route. Confirmation will then be asked of the user.
Search
The Search button, when selected, clears the bottom part of the screen and replaces it with a list of all routes specifying the criteria. The criteria being the Route ID, Route Name, Carrier, and Carrier Number that are entered as the terms of the search.
Save
The Save button will only be active when it is applicable, namely for adding a New route and Editing a route. Then, when depressed, it will store the onscreen information into the database.
Cancel
The Cancel button will also only be active when Adding a new route or Editing a current route. Then, when depressed, it will not save any changes made to the records.
Help
The Help button, when depressed, will display a help screen for information on the functions and fields of the Routes interface screen.
Quit
The Quit button, when depressed, will exit the program. If there are any unsaved changes on the screen, the user will be asked whether they should be saved.
Print
The Print button, when selected, will generate a printout which contains the Route Name, Carrier Name, Carrier Address, Carrier Phone Number, Route Household Addresses and status, and the publication(s) received by each household.
Description of data fields
- Route ID Number
- This data field contains a unique identifier for each different route.
- Route Name
- This data field contains the name of the route, up to 20 characters.
- Carrier Name
- This data field contains the ?last? name of the carrier who delivers to the onscreen route.
- Carrier ID Number
- This data field uniquely identifies the carrier assigned to the route.
- Number of Customers
- This field contains the number of customers that are on the current route.
- Households
- This list box lists all the households on the route.
- Postal Codes
- This list box lists all the postal codes on the route.
- Delivery List
- This list box lists all the publications and their quantity to be delivered to the route.
Return to Table of Contents
The Billing system is responsible for periodically updating household accounts. This function should be performed at the end of every week, and additionally at the end of each month.
This system will allow the user to display, print, or update billing information for a household or all households with a balance outstanding for subscriptions. When the billing system is started, it will ask the user if they want to generate a new set of bills for all households with an outstanding balance or find an individual household's bill, and either display or generate it.
If the user selects generate bills the system prints off a bill for each household which has an outstanding balance and returns the user to the main screen. Once a household is selected, the user will be able to view and edit the household's billing information (i.e., update their record of outstanding balance for a payment received). They can then print this household's bill out if they choose.
The system will be able to produce a variety of summary reports on request from the user. All reports can be viewed on the screen or be printed out. Summary reports contain the following information:
- A list of total balance outstanding and number of subscribers, listed by publication, with grand totals at the bottom
- A daily report for each publication, with the number of subscription sales and their value, listed by route, with totals at the bottom
- A daily report with the number of subscription sales and their value, listed by publication, with totals at the bottom
Return to Table of Contents
The new management plan takes into consideration all suggestions concerning the system and previous functional specifications. All changes have been incorporated into the revised system.
The following is the information structure that we are planning on using in the proposed system. The following lists the size of and expected contents of each field for each of the major sections.
Households
- Unique Customer Number
- last 2 digits of the year the customer signed up, first 2 letters of the route name the customer belongs to, and a 3 digit number unique to the route.
- Name (surname, first name)
- 20 Characters last name, 15 characters first name
- Address (street, house number, apartment number and postal code)
- 15 characters street, 7 characters house number, 6 digits postal code
- Phone number
- 10 character phone number (XXX) XXX-XXXX
- Status
- Whether the household is suspended or not suspended for an extended period, for a specific time period, or delivery as usual check boxes, with a field that is activated if the specific time period is to be entered with the form (DD/MM to DD/MM)
- What newspapers or magazines the household is currently subscribed to
- Name of magazine, selected from a menu or check boxes. The number of subscriptions will be unlimited.
- Present credit on the household account. A negative balance will imply a prepayment on the account, while a positive balance implies an amount owed
- Account balance -$XXXX.XX approx. 8 characters to a maximum value of $9999.99
- A notes section to help the delivery people be aware of any special instructions indicated by the household.
- special notes 'n' rows of 30 characters apiece
- A route name to identify which route the household is related to. This should be automatically related to the household based on their postal code and the predefined routes already entered into the system
- unique route number approximately 5 to 15 characters and the route name
Publications
- Name, Publisher, Supplier Name, Supplier Phone Number
- 30 characters name, 30 characters publisher, 30 characters supplier name, 10 digits phone number
- Selection of (e.g., home weekend, home daily, corporate rate for doctors offices or coffee shops)
- Price Scheme -Price per issue/Weekly/Monthly deals (e.g., subscription for 50% off, etc.)
- $xxx.xx per issue/x issues
- Type
- magazine or newspaper
- one char for magazine or newspaper
- Frequency of Delivery
- Daily delivery, able to specify which days.(e.g.,. Fri,Sat,Sun or Mon and Sat) Weekly delivery, able to specify which day
- Bi-weekly delivery, able to specify which day or dates
- Monthly delivery, able to specify date of delivery
- Irregular, able to specify a number of specific dates
- General Description
- A brief summary of the publication, originally entered by the user
- special notes 'n' rows of 30 characters apiece
- Key Descriptors
- (e.g., Automotive, trucks, tractor pull)
- Total Number of people that are subscribed to the publication, calculated automatically.
- XXXXXXX number of people subscribed (9999999 maximum)
Carriers
- Name (Surname, first name)
- 20 Characters last name, 15 characters first name
- Address (Street, House Number, Apartment number and Postal Code)
- 15 characters street, 7 characters house number, 6 digits postal code
- Phone number
- 10 character phone number (XXX) XXX-XXXX
- Routes they deliver to
- unique route identifier X 'n' rows
Routes
- Name
- name of route, 20 characters
- Unique route identifier X 'n' rows
- A list of postal codes that are in the route
- 'xxx-xxx' X 'n' postal codes in route
- How many households are in the route
- XXXX number of households in route
- Which carrier is assigned to this route unique carrier name
- Lists of households in route
Billing Information
- All household information and our company letterhead should be produced at the top of the bill
- Name (surname, first name)
- 20 Characters last name 15 characters first name
- Address (street, house number, apartment number and postal code)
- 15 characters street, 7 characters house number, 6 digits postal code
- Phone number
- 10 character phone number (XXX) XXXXXXX
- All of the households subscriptions should be on the same bill, with a bottom line total of the amount owed
- Name of magazine/paper, 20 characters, to a maximum or 5 entries
- with expiration date of subscription Day/month/year e.g. 00/00/00
- Account owed $XXXX.XX approx. 8 characters, to a maximum value of $9999.99
- late charges if applicable $XXX.XX
- Any late charges and expiration date for each subscription should be listed as well
- All of the transactions since the last time a bill was printed for this household should be listed (e.g. payments received, new subscriptions, etc.)
- previous balance
- $XXXX.XX
- list of transactions
- date (00/00/00) type of transaction amount
new balance $XXXX.XX
Note: The billing system will not be implemented with the system
Summary Reports
- A summary sheet should be produced on request with total money owed and total number of subscribers by publication:
- Publication Name
- # of subscribers
- Total money owed $XXXXXXX.XX maximum $9999999.99
- Ability to generate daily summary information showing how many copies of each publication were sold that day. The number of copies sold and the total monetary value should be included.
Functions
There are eight major functions characteristic of each interface screen. They include New, Delete, Edit, Search, Help, Quit, Save, and Cancel . These functions are described below in their generic format since all major sections will involve all of them. A more in depth description of their function per section is described above in the specifications and the interface descriptions. All data base updates will be cross referenced with the other affected data bases (e.g., adding a household, results in a route taking on a new household and an increment to a product's total delivery). This will ensure that all data bases will remain current in the event of any changes.
- New
- will permit the addition of any new "entity" such as a customer or a publication
- corresponds only to the desired fields pertaining to that section
- Delete
- will permit the deletion of any existing "entity" such as a customer or a publication
- corresponds only to the desired fields pertaining to a section
- Edit
- will permit the modification of any existing "entity" such as a customer or a publication
- corresponds only to the desired fields pertaining to a section
- Search
- will perform a search corresponding to the search keys provided by the user
- queries will differ by section, as per described in the functional specifications
- Help
- online help manual
- Note: This will not be implemented as part of the system, it is simply an addition that can be implemented in the future
- Quit
- Save
- Cancel
- cancel current mode selected
Project features
The proposed Newspaper Delivery system will include the following features. It will keep track of all the customers (households) of the newspaper, recording such information as the name, address, phone number, status, and money owed by the household with the option to edit and search households individually. Editing specific household information fields is possible, as well as adding and deleting all information for a household. Publications will also be listed along with their relevant information, giving the user the ability to edit information fields, add or delete publications as well as search for selected publications. The system will also keep track of carriers that will deliver the publications to the households. The user will be able to add or delete carriers as well as edit their personal information.
Households will be linked to carriers through routes, which will list items such as the name of the route and the number of households on that route and be defined by a list of postal codes (even though a household may be placed on a route though its postal code is not on that list). Through the routes, the system will allow the user to view the total number of deliveries per day to each individual route, as well as show all the households on a route. It will also be able to make print-outs per route or for an entire set of routes or a sub-set of selected routes.
Billing households will also be a part of the Publication Home Delivery System. It will list all the subscriptions, with totals and late charges and any transactions left owing. Any household's bill can be generated at request. When payments are received, it will update the outstanding balance of a customer. A summary sheet will also be available that will list the total money owed and the total number of subscriptions. Daily reports will also be available that will show the number of copies of each publication sold and their total monetary value.
There are many different implementation options for a database system of this nature. In this case, the type of implementation is assumed to be synonymous with the computer architecture required to run the system, and the software used to create the database. Firstly, we must know whether the current hardware possessed is satisfactory to run a database system of this size, or are upgrades required or already planned for. If this is the case, how much money is available for upgrades. Secondly, what level of user knowledge should be required to use the database efficiently. For example, is the system meant for a computer novice or an expert. Once this is known, a better assessment can be made of possible implementations. Regardless, here are a couple of suggestions.
Our favoured choice is an IBM compatible personal computer with the following minimum requirements: 486DX processor, 16 megabytes of memory, an SVGA monitor, 200 megabytes of free hard drive space, a tape drive for backup, a line printer, and a commercial quality laser printer. It also must have at least MSDOS 6.0 and Microsoft Windows 3.1 installed. The database program will be programmed using Microsoft Access. This options seems to make the most sense since many organizations already posses some or all of this hardware and have other uses for it such as running modern word processors, spreadsheets, etc. In addition, upgrades could be made relatively cheap and quickly.
The system needs to handle access by management, accounting, mail-room supervisors, region managers, distributor supervisors. And may be ported to affiliates in large urban centres(e.g.,. New York). Perhaps a file server, some workstation, some terminals and some network software could be added in for the final deliverable. Also a most plausible enhancement in the future would be multi-level access, so that accountants are not deleting carriers for example.
If such hardware is not possessed nor is it wanted, a package might be able to be designed for a different system. This would require much more time though, and therefore would come at a greater cost. In this case, the specific software used would be dependent of the type of computers. If an older IBM compatible is the target, something such as Lotus 1-2-3 may be practical. If the machines are UNIX compatible with a graphical operating system (i.e.. X-Windows) something such as SYBASE and TCL could be used, again at greater cost. The user's knowledge of computers becomes relevant in this case, since the result of the later options would most likely require a greater level of comprehension of databases.
We would like to point out that a few assumptions have been made with regard to some missing information. Our assumptions are based on suggestions that would make the programming easier, in the case of missing fields, to making the system conform to current industry, such as the recommendation of the hardware and software platforms. As not all the assumptions are flagged, please be sure to review the functional specifications thoroughly and decide if our proposed system meets or even exceeds your requirements.
Team Structure
The team structure was created with efficiency and high communication as the priorities. First of all, to avoid the problems that are often associated with larger groups it was decided that three smaller groups would be created. Each of these groups would represent one of the major aspects of the project which are: interface, documentation, and programming. The members for the teams were picked so that each of members strong points would be used to the greatest potential. However with the evolution of the project, the interface and programming teams became more as one so it was decided that the teams would be redivided, resulting in two groups. These new teams are as follows:
- Documentation:
- Blair Whitford,
- Janice Webster,
- Guy Gravel,
- Ian Mayhood,
- Mike Ksenak,
- Henry Wong
- Programming:
- Dave Neufeld,
- Steve Thompson,
- Andy Lum,
- Michael Boonstra,
- Sean O'Rourke
- Presentations:
- Blair Whitford,
- Dave Neufeld,
- Janice Webster
The programming team will be responsible for creating the user friendly GUI between the users and the program, as well as write the program in the selected programming language. The documentation team will be responsible for the writing of most of the documentation, such as the user manual, as well as editing and typesetting any documents that are to be placed on the Web. Note that all of the groups will interact with each other in that all members may be required to assist other groups if needed. As well all groups will participate in creating the documents.
To manage and coordinate the different needs of the teams a Product Manager was appointed and in order for there to be enough communication throughout the teams, a representative from each team was chosen. Meeting would be held with the team representatives and the product manager in order to make certain that everyone is keeping up to the schedule, there are no misunderstanding ambiguities with the project, and to make sure that any concerns and problems conceding the entire project are dealt with and solved. The selections for these positions is as follows:
Product Manager: Mike Boonstra
Assistant Manager: Dave Neufeld
Documentation: Blair Whitford
Programming: Steve Thompson
In order to keep everyone informed of the current events, a secretarial and document manager position were assigned. The secretary is responsible for writing the minutes of the meetings and the document manager is in charge of posting this information along with all the other pertinent information, on the World Wide Web. These positions are filled by Ian Mayhood (document manager), and Sean O'Rourke (Secretary).
Every one of the team members will be involved with some aspect of the testing. Which aspect they will be involved in will be determined by the individuals strengths but not necessarily by which sub-team they are in.
Minimal System
The minimal system that will be implemented is separated into five major subject components: customers, publications, subscription, routes, and carriers. Each one of these parts will contain functions that will allow the user to add, edit and delete their perspective data. This data and the rules for its entry are covered in the previous paragraphs. There will also be various functions that allow the user to view the data of one of the subjects by individual record, and by a group of records.
There are also more specific functions. A user will be able to suspend a customers account for a specific time period or indefinitely. There will also be a function that will create a print out of the days deliveries as was specified previously.
Due to perceived time constraints this proposed system will not contain a billing system. After much discussion it was determined that the billing system was too complex to be created as scheduled. An enhancement that may be added in the future is to add a partial billing system. This would not include anything as specific as a list of payments for a particular invoice, but more likely would include enough functionality for it to work along side a separated billing system. Some the functions covered in this system would include summary showing total Money owed and total number of subscribers by publication, daily summary information showing how many copies of each publication were sold that day, ability to generate bills for households, and ability to update balances when a payment for an invoice is received.
Summary
This system when completed will be user friendly to help employees complete their everyday work, tasks, and projects. A graphical or windows interface will guide the users through the functions described by the users to keep the newspaper service running smoothly.
We believe good programming techniques, and meticulous attention to data base manipulation will make our system both efficient, and reliable so everyone can meet their goals, and get their jobs done.
Return to Table of Contents
Appendix A contains the DFD and ERD diagrams that were used to design the system. Also included in this appendix is a data dictionary that lists all the major components of the DFD and ERD diagrams.
Data Dictionary for "Publication Home Delivery System"
address = street + house + postal code
* non-key attribute of object "Households" and key
* attribute of "Carriers"
apartment number = string
* used to define "house"
* 7 characters long
balance = integer
* non-key attribute of "Households"
* if negative: credit balance to household
* if positive: balance owing by household
carrier = carrier info
* data flow in DFD
Carriers = @name + @address + phone number + route info
* object; represents the carriers currently in system
customer number = integer
* key attribute of the object "Households"
* n-digit integer specific to each household
customer info = Households
* data flow in DFD; corresponds to an instance of the
* object "Households"
customer = customer info
* data flow in DFD
date = days + months
* used to define "date suspend"
date suspend = date
* used to define "status"
* date to which deliveries are suspended
days = integer
* used to define "period suspend" and "date"
description = string
* non-key attribute of "Publications"
* brief description of publication
first name = string
* used to define "name"
* 15 characters long
frequency of delivery = [ daily | weekly | biweekly | monthly | irregular ]
* non-key attribute of "Publications"
* irregular -specific dates for delivery
house number = string
* used to define "house"
* 7 characters long
house = [house number | apartment number]
* used to define the attribute "address"
* 7 characters long
Households = @customer number + name + address + phone number + status + subscription + balance + notes + route info
* object; represents the households in the system
key descriptor = string
* non-key attribute of "Publications"
* key-word for the publication
last name = string
* used to define "name"
* 20 characters long
list of household = {Households}
* non-key attribute of "Routes"
* list of households on route
months = integer
* used to define "period suspend" and "date"
* two digit representation of the months of the year
name = first name + last name
* non-key attribute of "Households" and "Route"; key
* attribute of "Carriers"
note = string
* non-key attribute of "Households"
* used for special instructions
number of household = integer
* non-key attribute of "Routes"
* number of household on route
number of subscriber = integer
* non-key attribute of "Publications"
* 7 digit integer
period suspend = [ days | months ]
* used to define "suspend"
* length of time deliveries are suspended for
phone number = string
* non-key attribute of "Households" and "Carriers",
* also used to define "supplier"
* string of digits in this format: (XXX) XXX-XXXX *
postal code = string
* non-key attribute to "Routes", also used to define the
* attribute "address"
* 6 characters
price scheme =
* non-key attribute of "Publications"
* user defined schemes
publication = publication info
* data flow in DFD
publication info = Publications
* data flow in DFD; corresponds to an instance of the
* object "Publications"
publication name = string
* key attribute of the object "Publications"
* 30 characters
Publications = @publication name + publisher + supplier + price scheme + type + frequency of delivery + description + key descriptor + number of subscriber
* object; represents the publications available
publisher = string
* non-key attribute of "Publications"
* 30 characters
range = {postal code}
* non-key attribute of "Routes"
* list of postal codes covered by route
route = route info
* data flow in DFD
route number = integer
* key attribute of "Route", also used to define "route
* info"
route name = string
* non-key attribute of "Route", also used to define
* "route info"
* 5 to 15 characters long
route info = Route
* data flow in DFD; corresponds to an instance of the
* object "Route" carrier info = Carrier
* data flow in DFD; corresponds to an instance of the
* object "Carrier"
route info = route name + route number
* nonkey attribute of "Households" and "Carriers"
* route to which the household or carrier belongs
Routes = @route number + route name + range + number of household + name + list of household
* object; represents routes in system, name refers to
* name of carrier responsible for route
status = [suspend | not suspend]
* nonkey attribute of "Households"
* used to determine if deliveries should be made to
* a household
street = string
* used to define the attribute "address"
* 15 characters long
subscription = {publication title}
* non-key attribute of "Households"
* a list of publications subscribed by the household
supplier = supplier name + phone number
* non-key attribute of "Publications"
supplier name = string
* used to define "supplier"
* 30 characters
suspend = [ date suspend | period suspend ]
* used to define "status"
type = [ "m" | "n" ]
* non-key attribute of "Publications"
* type of publication, "m" -magazine, "n" -newspaper
Return to Table of Contents
Appendix B contains the 1st draft interfaces which were hand drawn and scanned. These interfaces are only an outline to the actual interfaces that will be implemented with the system.
NOTE: GLOSSARY IS PENDING, TO BE COMPLETED LATER
Return to Table of Contents
Page maintained by Ian Mayhood -
Last Updated: February 12, 1996