- XML Music is a demonstration site build by Ryan McHenry for
MIS 324
Intermediate Web Development and Management at Western
Washington University.
- Built using ASP.NET.
- All data is stored in an Access database (normalized to
third-normal form).
- All reusable components are contained within user controls
(such as the header, footer and search/browse menu).
- Am XML-based "Supplier Network" is used to share product
descriptions among students in the course.
- Home Page
- "Today's Feature Items" are randomly selected from the
database.
- A single SQL statement is used to retrieve all six CDs
(for maximum efficiency).
- The DataList is used to displays the items.
- The browse menu is dynamically generated from the
database using a SQL query that shows only the current book
categories.
- The browse menu is cached for 10 minutes (to maximize
efficiency).
- Search/Browse response page
- Searches the title, artist, description and category
fields in the database.
- SQL's distinctRow statement is used to eliminate
duplicate items.
- The Row.Count property of the DataSet object is used to
count the number of CDs found by the search.
- Responds gracefully if no items are found by search.
- Shopping cart page
- A cookie is used to store the ASINs of CDs in the cart.
- Handles multiple quantities of each CD.
- Information for all CDs in the shopping cart is
retrieved using a single SQL statement.
- Shipping and product costs are calculated.
- A DataSet is used to hold product data and match
quantities from cart.
- A DataList is used to display the data.
- Checkout page
- Searches the database for existing customer accounts and
automatically loads their shipping information into the
order form.
- Information for new customers is written to the
database.
- A unique ID number is assigned to orders and new
customers.
- Validation controls are used to validate all user
inputs, including a regular expression validator to check
the pattern of the email address.
- The OnTextChanged event of the textbox is used check for
changes to customer information. Database is updated only if
data has changed (to maximize efficiency).
- An HTML email is sent to the customer with the order
information.
- The shopping cart is emptied by deleting the shopping
cart cookie.
- Order History Page
- Searches the database and displays all orders associated
with customer's ID.
- Enhancements
- Graphics.
- Shopping cart status box.
- Recently viewed items listed in right-hand column (up to 5 items).
- Browse menu contains number of items in each category
(SQL groups). Browse menu is cached.
- Search string is filtered to be "bomb proof" against
apostrophes, html and SQL injection.
- If only one item matches a search users are
automatically redirected to the product page.
- Separate billing and shipping addresses. User can add shipping addresses
or select past addresses they have shipped to from a drop down list.
- Login uses passwords and verifies if the password matches. Upon verification,
a cookies is written with the user's email, customer id and full name. The name
is used in the welcome note.
- The search results and order history pages use paging.
- The order history displays general order information. A link is provided to view
the details of the order.
- Track names on the product page with a music note image
beside them to denote an active music link. If there is no link, then no music note
will be appended to the track name.
- Users can change their password when they order or update their information.
- A link is provided on the sign in page for users who forgot their password.
They can enter their email address in the form and their password will be sent to the
email address stored in the database, if it is found in the database.
- Thanks to Amazon.com (the world's greatest on-line store)
for the use of its CD images and descriptions.
Be sure to visit
XML Music 2, our web services music
store that lists the entire Amazon.com music catalog.
|