The term project is to add enhancements to your on-line music store. This is your
opportunity to be creative!
Instructions for turning in project
1. Enhancement Ideas
Make sure that you have the basic music store working properly before you start
on enhancements. Enhancements are of little value if they are added to non-functional
Tip: Before starting to work on enhancements that could cause existing code to malfunction,
I suggest that you make a backup copy of your project in a separate folder.
Some ideas for enhancements are listed below. You are also encouraged to be creative
and come up with other ideas.
- Upgrade the graphical appearance of your music store.
- Add a shopping cart status box (see XML Music).
- Add a listing of "visited pages" so the user can easily get back to previously
viewed items (see XML
- List best sellers based upon data in tblOrderItems (see XML
- Recommend music to customers based upon their interests. (see XML Music).
- Add caching to the category menu, searchBrowse page, or product page.
(see XML Music).
- Validate city-state-zip code combinations by looking them up in a zip code database.
A zipcode database containing over 42,000 city, state, zip codes is available for
your use on Yorktown (see checkout in XML
The connection string in the web.config file has the syntax:
connectionString="Data Source=yorktown.cbe.wwu.edu\dsciweb;Initial Catalog=Zipcodes;Persist
Security Info=True;User ID=ZipcodeReader;Password=zipGuest" providerName="System.Data.SqlClient" />
NOTE: This database is behind WWU's firewall. To access it from off campus you will
need to have a VPN established on your computer.
- Add CD track listings from Amazon.com
(see XML Music).
- Add a professional web design theme on your site (SmashingMagazine.com recommendations).
- Add AJAX functionality to your site. (This will rquire some creativity. Amazon web services
are too slow for Ajax. It could possibily be used in the checkout.)
- Add customer product reviews on the product page. To prevent bots from
posting span this also requires a CAPTCHA verification image.
See XML Music and
reCaptcha Sample (source).
To use the sample code you will need to download the recaptcha.dll from Google
and put it into your bin folder. Google "recaptcha asp.net" for the .dll
file. The Google code has a couple of minor problems which I have corrected in the
- Create a customer wish list. Ideally the wish list will persist between sessions
and be available from any computer, requiring that the wish list items would need
to be written to a database (similar to the shopping cart). See Amazon.com as an
example of a wish list.
- Validate that customer email addresses are unique before writing them to the database.
The sample site uses a custom validator. The validator's handler calls a method
of the checkout class named "EmailIsUnique." This method executes a sql
query that counts the number of instances for the email address, excluding the current
CustID. If the count is > zero the validator reject the email address.
- Create administrative pages for managing customer and order information. This could
include the ability to edit customer information, an interface for managing order
status (shipped, partially shipped, returned, etc.) and adding new products to the
database. (Note: In MIS 424 this is done using the SQLDataSource controls, which
are very convenient for this task).
- For other ideas look at Amazon, Barnes and Noble and other sophisticated shopping
Include a list of your enhancements in your "About this store" section
so that I don't miss any when grading your assignment.
2. Instructions for turning in Project
The project is due at the date and time shown on the course schedule. Late
projects will be subject to a penalty of one letter grade per 24 hours (so don't
Send your music store URL to:
- Professor Sandvig at email@example.com
- cc a copy to yourself
3. Project Grading
The project will be graded based on the basic store created in assignments 7, 8
and 9, plus any enhancements that you have added. The basic store that you have
completed by the end of assignment 9 will earn a grade of approximately a B-. Enhancements
are a way for your to further improve your grade.
The grading of the final project is very detailed and includes looking at your source
code to make sure that you have coded efficiently and neatly. Specifically I will
be checking to make sure that you have used user controls for all code that is reused,
that your browse menu is dynamically generated and that you code is original (your
Project grades will be posted on the class web site.