Develop a web site that provides customer access to the Northwind database. The customer should be able to login/register at the site and select any number of products to order, and any quantity of each. When done selecting products, the final order should be displayed for the user to review. The user must click a button to confirm the order. The order is entered into the database only after the confirm button is clicked.
Payment for the order is not handled by the website.
Required Features
1. When the user registers on the website, she must enter a first name, a last name, a phone number and a company name. The site assigns a 5-character customerID to the user, and enters the customer information into the Customer table. For simplicity, only the following fields of the Customer table need to be updated: CustomerID, CompanyName, ContactName and Phone.
2. After registering, a user can login to the site at any later time by entering the customerID number. Password protection is not required.
3. The user must be able to select products to order from a list of product names and prices, and must be able to specify the number of units to order for each product.
4. When requested by the user (or automatically when the user adds a product to the order), the site will display the current order: product name, unit price and extended price for each product, plus the total price for the order.
5. When the user clicks a Confirm/CheckOut button, the order is entered into the database by updating the Order table and the OrderDetail table. For simplicity, the only fields that need to be updated are: CustomerID and OrderDate in the Order table (the server will supply the OrderID); and OrderID, ProductID, UnitPrice and Quantity in the OrderDetail table.
6. After the order has been placed, display the Order table and the Order_Detail table in Gridviews. This would not normally be done - a customer normally is not shown the orders of other customers. It is included as a requirement here to help the grader verify that your program has inserted the proper information into the database. Display only the fields that we are using in these tables, and enable Sorting and Paging for each Gridview.
Optional Features
A. Provide password protection
B. Provide a way to review existing orders. That is, allow the user to log in to a new session and find orders for her that are already in the database. For each order, display the order number, the order date and the name and quantity for each product.
C. Provide a way to Cancel an order. That is, allow the user to log in to a new session, specify an order number, and request that it be cancelled; the server will remove the order from the database (one row from the Order table and one row for each product in the order from the OrderDetail table).