ha l CIS-470: Team C Requirements Specification v1.6 (Final Draft) Professor William Mcclure ee v Jo DeVry University C ha ra nj February 21st 2014 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) Table of Contents SCOPE ............................................................................................................................................. 3 1.1. 1.2. 1.3. 1.4. 2. DESIGN DESCRIPTION ..................................................................................................................... 9 2.1. 2.2. 2.3. 2.1. DATA DESCRIPTION........................................................................................................................... 9 DATA FLOW .................................................................................................................................. 11 PROGRAM ARCHITECTURE ................................................................................................................ 12 COMPONENT INTERFACES ................................................................................................................ 17 DETAILED DESIGN ......................................................................................................................... 18 Jo 3. SYSTEM DESCRIPTION........................................................................................................................ 3 MAJOR SOFTWARE FUNCTIONS ........................................................................................................... 4 DATABASE DESCRIPTION .................................................................................................................... 7 DESIGN CONSTRAINTS AND LIMITATIONS .............................................................................................. 8 ha l 1. DOCUMENT WORK LOG: ............................................................................................................... 31 ra 4. nj ee v 3.1. USER LOGIN .................................................................................................................................. 19 3.1.1 Processing Description .......................................................................................................... 19 3.1.2 Interface Description............................................................................................................. 20 User Login Pseudocode ....................................................................................................................... 21 New User Pseudocode......................................................................................................................... 24 Browse Catalog Pseudocode ............................................................................................................... 25 Edit/View Account Pseudocode........................................................................................................... 26 View Account Pseudocode .................................................................................................................. 27 View Orders Pseudocode..................................................................................................................... 27 Edit/View Shopping Cart Pseudocode ................................................................................................. 28 Purchase Order Pseudocode ............................................................................................................... 29 3.1.3 Modules Uses ........................................................................................................................ 30 List of Figures C ha FIGURE 1: ENTITY RELATIONSHIP DIAGRAM ............................................................................................................ 10 FIGURE 2: DATA FLOW DIAGRAM ......................................................................................................................... 12 FIGURE 3: PROGRAM ARCHITECTURE .................................................................................................................... 13 FIGURE 4: CLASS DIAGRAM ................................................................................................................................. 16 FIGURE 5: SCREEN NAVIGATION DIAGRAM ............................................................................................................. 17 FIGURE 6: HOMEPAGE SCHEMATIC ....................................................................................................................... 21 FIGURE 7: CATALOG SCHEMATIC .......................................................................................................................... 25 FIGURE 8: MY ACCOUNT SCHEMATIC .................................................................................................................... 26 FIGURE 9: SHOPPING CART ................................................................................................................................. 28 FIGURE 10: CUSTOMER REGISTRATION/LOGIN SCHEMATIC ....................................................................................... 23 FIGURE 11: STAFF LOGIN SCHEMATIC.................................................................................................................... 23 Page 2 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) Team: Team C Team Members: Charanjeev Johal, Dane Hearn, Devin Plato, Lindsay Smella, and Loretta Hatch 2nd February 2014 Project Title: Williams Specialty Company - E-Commerce Website Team Leader: Charanjeev Johal Jo Scope v 1. ha l Date: ee This section will define the scope of the project by defining and describing the System, the major functions of the application, and the database. System Description nj 1.1. Williams Specialty Company (WSC), a small print and engraving organization wants a ra web site developed to allow its clients to make and manage their order information online without having to come to their office or contact a sales agent via the telephone ha or email. In addition, WSC has requested for the website to showcase their entire print and engraving catalog. Finally, WSC wants, their sales employees to be able to access C the customer and order information as and when needed in order to assist a customer and fill out customer orders if requested by them. The goal of this website project is to improve overall productivity, efficiency, and scalability of Williams Specialty Company (WSC) in relation to the buying and selling of their print and engraving products and services online. This is to be accomplished by planning, designing and implementing a website that utilizes the client–server model. The client’s aspect being a WSC customer or employee, they will access the website via Page 3 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) a browser (front-end). The server aspect will be a web-server that will store the website and finally a database that will store customer order information and login information (back-end). Major Software Functions Major Software Functions A. Client (Employee/Customer) -Web Browser B. Web/Application Server C. Database Jo II. Primary System Components Software Functions A. User Functions Create Order ee 1. v I. ha l 1.2. This function allows validated users to select a product from the e-catalog and place items into a ‘shopping cart’ nj which stores their selections until the ‘Complete Checkout’ button is clicked. OR by selecting the ‘Cancel Order’ button ra they can clear the ‘shopping cart’ and will be returned to the e-catalog. Edit Order C ha 2. This function allows validated users to add or de-select items from an existing Order that was previously placed UNLESS THE ORDERED PRODUCT HAS ALREADY BEEN STARTED, at which point the order cannot be edited by the customer. 3. Retrieve Order Page 4 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) This function allows validated users to view a copy of a previously placed order by selecting the ‘View Orders” button. 4. Retrieve Purchase Order This function allows validated users to view a copy of the 5. ha l Purchase Order by selecting the ‘View Bill’ button. Create User Account This function allows validated users to create a new user Jo account by clicking the “Create Account” button. They will then enter their name, address, phone contact information, choose a username and password. This will v be saved into the database when the user clicks the “Save” 6. ee button. View/Edit User Account This function allows validated users to view a copy of their nj user account profile or change the address information, phone contact information, username or password by ra clicking the ‘Edit Account’ button. The name may not be changed to avoid redundancy issues with the database. Customer Specific Functions ha B. C 1. Make a Payment This function allows validated customers to click the ‘Make Payment’ button and then fill in credit/debit card information such as cardholder name, billing address, card number, security code, expiration date and amount to be processed. This function will save the information to the database when the customer clicks the ‘Submit” button. Page 5 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) C. Employee Specific Functions 1. Create/Edit Catalog This function allows validated employees to create new catalog entries from the ‘Catalog Page’ of the site. The ha l “Edit” button, which is only visible to validated employees, can be clicked to add or edit catalog entries. 2. Create/Edit Purchase Order Jo This function allows validated employees to create or edit a purchase order that reflects the customer balance after the customer pays the 10% deposit. This function can be v accessed by clicking the “New Purchase Order” button ee (only visible to validated employees) to create a new purchase order or on the “Edit” button that will become visible when a customer account is selected. Validate Purchase Order nj 3. This function allows validated employees to validate the ra information in the order such as confirming. Close Order C ha 4. This function allows validated employees to formally close out an order as completed and paid by going to the ‘Customer Account Page’ and selecting a customer account. The ‘Edit’ button can be clicked to allow the order status to be updated to “Closed”. 5. Take a Payment This function allows validated employees to enter a customer payment into the system by navigating to the ‘Customer Account Page’ and selecting the customer. Page 6 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) Payment information can then be entered by clicking the “Make a Payment” button. D. Internal Functions 1. Provide web-based online shopping portal This is a generalized function which includes a graphical ha l user interface composed of several different web pages for browsing products, creating a user profile account, filling a ‘shopping cart’ with selected items, placing an 2. Jo order and submitting payment via the online portal. Provide database storage of customer/order information This is a generalized function which includes validating and v storing user information which can be view or modified 3. ee within the user credential limits. Provide validation to limit services to ONLY registered Users nj This is a generalized function which may be split between the ASP.NET web pages and the database and will enforce ra database continuity while providing a secure user area for ha creating, viewing, and modifying user information by C 1.3. checking for valid user credentials Database Description An Operational database will be used to hold company information and be utilized as a primary source of data for the ecommerce web site. The database must hold the information for orders, such as the type of job, media, catalog number, and content into the print/engraving request database. Once an order is placed, the salesperson will enter the payment arrangements that have been made with the Page 7 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) customer. This will include billing information, setting up an account for billing, or payment on delivery of order. The payment must be verified by the manager before the order is processed. The database will also hold information about the inventory of the company. Once the order has been completed, the order must be marked as The database will contain tables for data storage of: Inventory information • Security information • Customer information • Order information • Employee information • Quality assurance or Hold information • Purchase Order/Billing Information • Payment information Design Constraints and Limitations ha 1.4. ra nj ee v Jo • ha l completed in the database. System may not work with all browsers. • Our site will not be collecting sensitive data to make an actual purchase. • Trying to design in terms of mobile web-browsing. • Our System doesn't allow for special designs because consumers will only be C • ordering from the catalog. • Database storage space could be a constraint in the long-run. • Allowing room for future web-development updates for improved user activity. • A limit on how much traffic our website can handle as one limitation. Page 8 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) Server back-up for redundancy, just in case one fails. • Server limitations, from too many users accessing application. • Possible language constraints for foreign visitors. Design Description ha l 2. • This section will provide an overview of the application design by providing a description Jo of the data to be used and managed by the application, define the flow of data through the system, describe the architecture of the programs within the application and define Data Description ee 2.1. v the how the components will interface. The Employee class has a one to many relationship with the Order req class and the nj Payment class. It holds a one to one relationship with the Security class. The Customer class holds a one to many relationship with the Order req class and ra the Payment class. There is an associate relationship with the Catalog class via the Order_req class. It also holds a one to one relationship with the Security class. ha The Catalog class holds a one to many relationship with the Order_req class. C The Order_req class has a one to many relationship with the Billing class and the Hold class. Page 9 of 31 C ha ra nj ee v Jo ha l DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) Figure 1: Entity Relationship Diagram Page 10 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) 2.2. Data Flow The starting points for the Data Flow originate as either the Customer or the Sales Employee. From the Customer it can flow into a variety of different directions. The primary actions of this flow are viewing the catalog, logging in, creating a new user, ha l editing user information, creating an order, modifying/retrieving an order, or making a payment on an order. By viewing the catalog the data flows from the E-Catalog data store to the customer. For logging in it passes through a Validate Login Jo function, which will then communicate with the User Accounts data store. Similarly the new user and edit user options pass through correlating functions that also communicate with the User Accounts data store. As the customer interacts with the website to perform actions regarding orders the data will essentially flow to two v separate data stores, Payment Data or Orders. Data flows through a Create Order ee function to the Orders data store when creating new orders, or through the Edit/Retrieve Order function when working with a previously created order. In the nj instance of retrieving old information, the data will come from the Orders data store and then be overwritten with any changes. Payment data will flow through a Handle ra Payment function and eventually be stored in Payment Data as it is verified. ha Data surrounding the Sales Employee is not much different than the Customer. The user login and payment functions will have data flowing in the same pattern. The only difference is the added ability to Create/Edit the Catalog. In this situation the C data will flow to the Create/Edit Catalog function and then be stored in the E- Catalog data store. Page 11 of 31 nj ee v Jo ha l DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) Program Architecture ha 2.3. ra Figure 2: Data Flow Diagram The Presentation layer of this project consists of the webpages customers and C employees go to. These webpages provide a place to view products, order products, create new accounts and view already purchased orders. The Application layer is where the functionality of the project is done. When users add information on the presentation layer, the application layer takes that information and makes the necessary changes to the presentation layer and the data layer. Page 12 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) The Data layer is the place where the application layer stores information for later use. The application layer retrieves information from the data layer and can pass it to the presentation layer. The data layer is a database that consists of multiple tables used for C ha ra nj ee v Jo ha l storing different information. Figure 3: Program Architecture All classes are used to make objects which are then stored in the database for future use. Page 13 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) Employee Class: The employee class contains variables related to employees that work for the business such as name, address and phone number. The methods listed below the variables are functions the Employee class will be able to do. The employee class will be able to perform actions like view/edit catalog. Catalog Class: The catalog class is used to create/edit a catalog. The catalog class is ha l comprised of many products but a product may only be in one catalog. Customer Class: The Customer Class’s variables contain the customer information. All Jo function in the Customer Class involves editing/viewing customer accounts or shopping on the website itself. The Customer Class has a 1 to 1 relation with the Cart Class and a 1 to many relationship with the order class (this means that 1 customer can have many v orders but 1 order can only have 1 customer). ee Order Class: The Order Class variables contain ordering information such as the orderID and customer ID. This class has a few relations with other classes including the Shipping Class, Customer Class and the OrderInfo Class. The Order Class has a 1 to 1 relationship nj with the Shipping Class because every order only has one set of shipping information ra and one set of shipping information only has one order. The order to customer relationship was already defined under Customer Class. ha OrderInfo Class: The OrderInfo class only contains order information variables and no methods. This class has a 1 to 1 relationship with the Order Class which was already discussed under Order Class. OrderInfo also has a 1 to 1 relationship with the Cart Class. C Each OrderInfo only belongs to one Cart and one Cart can only have 1 OrderInfo. Cart Class: The Cart Class’s variables contain information about the cart. Functions of the Cart Class include adding products, removing products and purchasing those acquired products. The relationship between the Cart Class and the OrderInfo Class was already outlined under OrderInfo Class. The Cart Class’s relationship with the Product Page 14 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) Class is a 1 to many relationship. This means that a cart can have many products but a product can only have one cart. Product Class: The Product Class’s variables contain the all the information about a single product such as name, manufacturer and price. This class has the ability to add to the catalog or edit the information about a product. Its relationships are already C ha ra nj ee v Jo ha l defined under Cart Class and Catalog Class. Page 15 of 31 C ha ra nj ee v Jo ha l DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) Figure 4: Class Diagram Page 16 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) ra nj ee v Jo ha l 2.1. Component Interfaces C ha Figure 5: Screen Navigation Diagram The above diagram represents the navigation structure that the WSC website will use. It is a low-level architecture diagram work that documents how to navigate around the presentation components of the WSC website. Page 17 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) 1. The customer types the URL of the website in their browser. 2. The request is sent to the web server. 3. The sever response to the request. 5. The browser sends the request for login. ha l 4. The customer clicks the login link. 6. Login page prompt user to enter Customer Number and password. 7. Customer enters username and password. Jo 8. Login page searches for user’s login information. 9. The database sends a response. The user login page sends a message prompt. Access granted or denied. v 10. User searches through the catalog page for a product. ee 11. The catalog page responds. 12. The user selects a product. nj 13. The user selects the order page. The user fills out the order page. ra 14. The Order page searches the inventory database for products on hand. 15. The Inventory database responds if the products are in stock or not. ha 16. The order response that an item is available or not in stock. 17. The user selects print or engraving, C 18. Order page creates an order 3. Detailed Design This section will define and describe the design details for each of the components in the application. Page 18 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) 3.1. User Login 3.1.1 Processing Description The Williams Specialty Company desires a real time ordering system that integrates into their current operations. They wish to have an online e-commerce website that would ha l modernize and streamline their current operations considerably. In order to accomplish their wishes it is evident that this new system needs to handle considerable amount of up-to-date information passing between customers, employees and the database. Not Jo only does this new system have to handle the passing of information but it also needs an array of functional utilities that can execute complex commands to provide the users with an easy to use and complete interface. v The communication between the various employees as well as the customers should ee become much easier with the integration of this system. Here is the basic process description: nj A user (customer or employee) navigates to the websites home page. From this home page they can navigate to the stores catalog and browse, log into an existing account or ra create a new account. If the user is browsing the catalog and selects a item to add to their shopping cart, the item will be added to their shopping cart if they are logged into ha a valid user account. If they are not logged into an account then they are redirected to log in or to create a new account. C When the user is logged in and selects an item to purchase this item goes into a shopping cart. From their shopping cart they can choose to proceed to check-out or to continue browsing the catalog. If they proceed to check-out they will be required to fill out their shipping address and payment information. At the time of the purchase the website should check the stock database to see if the product the customer wants is in stock, this would happen in real time as to get an accurate number. If the product is not in stock then the system warns the customer of this fact and a backorder is placed on Page 19 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) this product. The stock room clerk is made aware of this current lack of inventory and proceeds to order more from the manufacturer while also notifying the operational manager of the purchase. When the stock comes in the customer whose previous purchase was placed on backorder is notified of the new inventory and is asked if they would like to complete the purchase. When the customer confirms and the payment is ha l validated work can start on the order. When the order is filled the product is checked Jo by a quality assurance officer and is cleared for shipping or pickup. 3.1.2 Interface Description The web user interface will allow both customers and employees interact with the ee components and provides a means of; v website. The user interface includes hardware (physical) and software (logical) Input, allowing the users and employees to manipulate a system • Output, allowing the system to display the effects of the users' manipulation for nj • ra example calculating total cost of shopping. The user interface will designed to be efficient by taking usability in to account. There ha are several links on the website with different purposes. 1. Home Page: The home page will be a web form. It will serve as the point of entry C into the WSC portal and will contain links to the other pages in the site. a. Log-In Fields: The log-in fields will appear on the home page and will offer the user the optional ability to log-in immediately upon visiting the site by filling in the fields labeled ‘Log-In’ and ‘Password’. As a user protection the ‘Password’ field will only reveal asterisks in place of the entered text as it is being entered. When the user completes the two fields with valid log-in credentials, the information is sent to the application Page 20 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) layer which then will check the data against currently stored user data in the data layer. Once validated, the user will be navigated to the ra nj ee v Jo ha l ‘Welcome’ page. Figure 6: Homepage Schematic ha User Login Pseudocode Prompt for Username and Password C If both fields contain values then If entered values match Customer Table then Log user in with session Redirect to homepage Else Alert Customer of invalid data Prompt for Username and Password Page 21 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) End value comparison Else Alert Customer of missing fields Prompt for Username and Password End value check ha l b. The customer registration/Login: Is used by a customer to setup a new account or to login to the website in order to shop or view/modify their account settings. Form fields to include: ii. Password iii. Customer/Employee Name iv. E-Mail Jo i. User Name v v. The ‘Register button will be grayed out until all required fields are ee completed. Once all fields are filled in, the ‘Create Account’ button will become fully visible and can be selected to submit the information to the application layer. The ‘Cancel’ button can be selected at any time to nj return the user back to the ‘Home’ page. c. Staff Login: if successful will grant employees access the customer and order ra information as and when needed in order to assist a customer and fill out C ha customer orders if requested by them Page 22 of 31 v Jo ha l DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) C ha ra nj ee Figure 7: Customer Registration/Login Schematic Figure 8: Staff Login Schematic Page 23 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) New User Pseudocode Prompt user for validated customer ID Compare ID with Customer table Prompt for desired username and password ha l If ID is found in customer table then If username is available and password meets standard then Redirect to confirmation page Else Jo Store data in Customer Table Alert user of unavailable username or invalid password v Prompt for desired username and password ee End username and password check Else Alert user that ID is not valid ra End ID Check nj Prompt user for validated customer ID ha 2. Catalog: This link will navigate the user to the ‘Catalog’ page whether or not they C have already signed in to the system. Page 24 of 31 v Jo ha l DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) Browse Catalog Pseudocode nj If user is logged in then ee Figure 9: Catalog Schematic Retrieve Catalog Data from Catalog Table ra Display Catalog Data with add option ha If add is clicked then Add selected item to shopping cart for session End add C End Login Check 3. My Account: This link is used to by a customer who has successfully logged in to track their previous orders or to change their account password. It will also provide a view of the current user’s previous orders history. Page 25 of 31 v Jo ha l DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) ee Figure 10: My Account Schematic Edit/View Account Pseudocode nj If user is logged in then Retrieve data from Customer Table ra Display Data in editable fields (except username) ha If Save button is clicked Validate data is acceptable Store data in Customer Table C End Save If Cancel button is clicked Redirect to homepage End Cancel Else Redirect to Login Page Page 26 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) End Login Check View Account Pseudocode If user is logged in then Display options for Edit/View Account Information, Edit/View Shopping Cart, and If Edit/View Account is clicked End Edit/View Account v If Edit/View Shopping Cart is clicked Jo Redirect to Edit/View Account page ha l View Orders Redirect to Edit/View Shopping Cart page ee End Edit/View Shopping Cart nj If View Orders is clicked Redirect to View Orders page ra End View Orders ha End Login Check View Orders Pseudocode If user is logged in then C Retrieve open order data from Order Table Display order data End Login Check 4. Shopping Cart: allows shopping customers to accumulate a list of items for purchase. Upon checkout, the webpage calculates a total for the order which includes the associated taxes, as applicable. Page 27 of 31 v Jo ha l DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) ee Figure 11: Shopping Cart Edit/View Shopping Cart Pseudocode nj If user is logged in then ra Retrieve shopping cart data from Order Table in editable fields ha Display Purchase and Update options If Purchase is clicked C Save new data in Order Table Redirect to Purchase Order Page End Purchase If Update is clicked Update data with new quantities Save new data in Order Table End Update Page 28 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) End Login Check Purchase Order Pseudocode If user is logged in then Prompt for payment method and card data from user If validation fails then Jo Alert user of missing or incorrect data ha l Validate fields Prompt for payment method and card data Else ee If verification fails then v Verify payment Alert user of payment problem Else nj Prompt for new payment method and card data ra Perform transaction Store data in Billing Table and Payment Table ha End verification End validation C End Login Check 5. Logout: when clicked by the customer will unload their account details and end their session until they login again. Page 29 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) 3.1.3 Modules Uses The customer selects catalogMedia from the Catalog class. Customer will verify access via the Security class. Order is retrieved by the system when the customer goes through check out and billing. The CustID, EmpID, BillID and CatID are all placed in the order_req ha l class, where the item may be purchased. Customer class, Billing class, and Catalog class C ha ra nj ee v Jo are updated with new data after Order is filled. Page 30 of 31 DeVry University CIS470 - CIS Senior Project Team C Design Specification V1.6 (Final draft) Document Work Log: Team Member - Secondary Charanjeev Lindsay Loretta Dane, Devin, Lindsay ha l Team Member - Primary Charanjeev Loretta Loretta Loretta Devin Devin Devin Dane Charanjeev Loretta Devin, Lindsay Lindsay Dane Lindsay nj ra Charanjeev Dane Devin Loretta Loretta Devin C ha Loretta, Devin Dane, Devin Devin, Lindsay Jo Loretta Loretta ee Section 1. Scope 1.1 System Description 1.2 Major Software Functions 1.3 Database Description 1.4 Database Constraints and Limitations 2. Design Description 2.1 Data Description Schema Table and Relationships – Data Dictionary 2.2 Data Flow 2.3 Program Architecture 2.4 Component Interfaces 3. Detailed Design Section Detailed Processing Description Interface Description – with UI Pseudo code, Flowcharts or Storyboards Module Uses v 4. Page 31 of 31