|
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.
|