CS 101 Final Project

The final project is due Friday, March 17 at noon!! This gives everyone quite alot of time -- please do not waste it. This deadline will not be extended except under the most horrific of circumstances (which we hope none of you encounter). The classes.cs server being "down" (not functional) will generally not count as horrific (If the classes.cs server is functional for any 12 hour period between noon 3/15 and noon 3/17 the project deadline will not be extended). <Advice> Pretend that this is just an outrageous regular assignment and that it's due March 8th.</Advice>

If you finish the project early, you are encouraged (without rewarded) to submit it early so that we can start the grading early. You can use this submission form to notify us that you are ready to have your work graded. If you are submitting your work at the deadline you do not have to fill out the above form.

Please place your final project in a subdirectory named final (i.e. ~yourid/html/homework/final/).

Final Project Requirements

You are being asked to add a store to your current (i.e. midterm) theme site. Your main page (and others on your site) should have a link(s) to your store. You are expected to meet all the following basic design goals/requirements. The approximate weighting for each part is also indicated.

Basic

Catalog Pages (25%)
  • You must have at least 6 items for sale.
  • You must have at least 2 web pages in your catalog.
  • Users must be able to either add an item to their "shopping cart" or immediately purchase the item.
  • Users must be able to view their shopping cart or start "checking out" at any time.
  • You must provide links to additional information about the items.
  • The visual presentation must be of high quality and well integrated with the rest of your site (this is true for all pages).
Session Management (15%)
  • You must provide session management thru either cookies or URL session ID encoding. For information on cookies see the netscape cookie spec.
  • You must provide a "view of shopping cart" page that will allow the user to adjust the quantity of each item desired (including to zero).
  • From the shopping cart view page the user should be able to go to either the catalog or the checkout page.
Check Out (20%)
  • The checking out page(s) must gather relevant purchaser and order information. This must include an order date field (this is to make testing the system easier for everyone), a credit card name (VISA, MasterCard, Discover, etc ...) and number, email address, shipping choice (i.e. next day, second day, ups, etc ...)
  • You will only ship/sell to US addresses. You must charge the correct sales tax (on the total order price before shipping costs). Sales tax will be based on the state of the buyer only. We have created a database of two letter state abbreviations and their sales tax rates.
  • Enough error checking should be done to catch and correct most simple errors (credit cards with the wrong number of digits, letters in the zipcode field, etc ...).
  • The penultimate checkout page will present the user with all the purchase transaction information (date, items, prices, totals, S/H, tax, grand total, address, etc ...) and ask for a final confirmation of the purchase.
  • The final checkout page will give the user an order number.
Order Processing (10%)
  • After the user confirms her purchase you must store the transaction details in a file named: orders.txt.
  • You must send the user an email confirming the purchase.
  • You must cleanly end/restart your session management (i.e. unlinking the session file).
Order Status (5%)
  • You must provide a form where the user can enter her order number and be shown the status (and details) of her order (you can make all orders have the status: pending).
MIS View (10%)
  • You must provide a web page with a form (named: mis.html) that displays the total dollar value of all sales, and displays the total sales by date.
The above project is large (so start working now!!). Notice that the above totals to 85%. The total points awarded for completing the basic requirements will vary between 75-90% depending on the quality of your HTML and PERL code. An additional 15% credit is available for completing any one of the following extended requirements.

Extended

Extendable Catalog Design (15%)
  • Make it simple to add/delete/modify items to the catalog.
  • All item data should be in one place, it should be easy to view, understand, and modify item data.
  • The catalog automatically grows/shrinks (number of pages) to accept the additions/deletions.
Clean Up After Interrupted Session (15%)
  • Interrupted sessions will leave data on the server side (most likely in a unique file you create for each session). Theses files must be periodically removed.
  • Modify your site to deal gracefully with expired sessions (have a thirty minute session timeout).
Additional MIS Views (15%)
(See pages 156-159 in Learning PERL to learn how to sort numerically)
  • Display a report of total sales by customer. This report must be sorted.
  • Display a report of total sales by item. This report must also be sorted.
  • For all these views allow the user to input a date range (no date range implies sum over the whole database).

General Advice

Please think about the whole project and the design of your solution for a while before you start to write code. Then write small blocks of code which you can check for syntatic and semantic correctness easily. DO NOT type 50 lines of PERL into a file and expect anything but trouble.


John L. Ross <johnross@uchicago.edu>
Last modified: Wed Mar 1 01:07:58 CST 2000