Brain Candy Music Store

http://yorktown.cbe.wwu.edu/03Fall/schumaj3/MusicStore/

Listing and searching of campers
  • XML Music is a demonstration site built by Josh Schumacher 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).
  • An 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 three 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 60 minutes (to maximize efficiency).
  • Placing an order 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 to 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
    • A unique and innovative graphical interface.
    • Graphical interface required extensive use of CSS and JavaScript
    • Top 5 albums from iTunes generated every 60 minutes and retrieved through an RSS 2.0 feed
    • The XML is then parsed using regular expressions and a DataGrid
    • The Search string is filtered to "bomb proof" against apostrophes
    • If only one item matches a search users are automatically redirected to the product page.
    • On-the-fly image generation using php and GD-Libraries, the best example of this is on the main page where the text stating how many cd's are in the database -- this is generated on-the-fly and is dynamic based on how many cd's are in the database. (More info - Text-png PHP Script)
    • Users must be logged in to see their order history - this protects all customers' privacy and they cannot view other customers' order history.
    • One CD I contributed to the XML Network was a multi-disk cd and I have formatted the Product Page to accommodate for multi-disk albums. Speakerboxxx/ The Love Below Product Page.

<< Prev Portfolio Page  |  Next Portfolio Page >>