COMP9321 Assignment 1 Description COMP9321 Semester 1, 2014 Assignment 1: Music Store Aims This project aims to give students hands-on experience in designing and implementing a Web application on their own using XML, Servlets and JSP. Description New business models have revolutionised the music business. Songs are now sold as singles or together as albums from many music stores such as ITunes Music Store, Rhapsody and eMusic. The objective of this assignment is to construct a web-based music store application using XML, Servlets and JSP at the minimum. Each song has the following minimum attributes: Artist, Title, Album (linked by the album identifier) and Price. Songs are grouped into albums. An album has the following minimum attributes: Title, Album Artist, Genre, Publisher, Year, and Price. The Album Artist may differ from the Song Artist. Please look at this XML Schema Description (XSD) file for the complete information about the data layout. An XML dataset of nearly 320 songs confirming to the above schema has been provided here. Given this database, you have to develop a music store with the following functionality: Search The welcome page displays a text input field, a dropdown box with options "Album" and "Songs" options and a button called "Search". User selects to search for either albums or individual songs User searches for albums/songs (substring within album/song title). Results The search results are displayed in a column fashion with checkboxes with an "Add to Cart" and a "Back to Search" button. For Songs, the columns to display are (Song Title, Song Artist, Album Title, Genre, Publisher, Year, Price, Select ?). For Albums, the columns to display are (Album Title, Album Artist, Genre, Publisher, Year, Price, Select ?) If the search does not turn up any results, then display no results found but both buttons must still be present. User selects (via checkbox) the albums/songs she wants to buy. She then clicks "Add to Cart" and is taken to the shopping cart page Alternatively, the user may elect to go back to Search via "Back to Search". Cart The Shopping Cart is shown in a column fashion with the columns (Title, Artist, Type (i.e. Album or Song), Publisher, Price, Select). The last column is a checkbox. At the bottom, the total price of the current cart is shown. If the cart is empty, then "Cart is empty!" message is displayed Below that, the user must be alerted if her choices in previous page duplicated any entry in the cart. For example, if the user selects an album or song that was already added, or if she added a song whose album was already added There are three buttons at the bottom of the page: "Remove from Cart","Go to Checkout", and "Back to Search"Only the last button is shown if the cart is empty. The user checks the boxes and clicks "Remove from Cart". The cart page is reloaded with the items removed and the total recalculated The user clicks "Go to Checkout" and is transferred to checkout page "Back to Search" takes the user to the search page. Checkout Page Page shows the current cart without checkboxes and asks for confirmation (Yes/No) If yes, show message "Thank you for purchasing" If no, show message "Thank you for shopping" In both cases, the session must be invalidated Below is a flowchart depicting the flow between the different JSP files. It is recommended that you use Servlets to mediate the control flow between the different JSP files (views). Other Notes We may test your assignment with a different database that contains a different set of songs/albums, yet following the same schema. However, the music database XML file will always be called "musicDb.xml" Submission Requirements The due date for this assignment is Wednesday, April 16th, 2014, 11:59:59 p.m.. Generate a war file from your project. In Eclipse, this is Right-Click on project name --> Export --> WAR file. Make sure that the "Export Sources" checkbox is checked. Run the command
give cs9321 Assign1
Note: It is extremely important that your war file can be loaded in any Tomcat 7 on Java 6 in the CSE environment. Make sure you test your assignment thoroughly. Marking This is an individual assignment and worth 10 marks. The assignment will be assessed by the course staff in their own environments, according to this marking guide. Please ensure that your assignment can run successfully in the standard environment prescribed for the course. In the event that your assignment cannot be executed despite all efforts of course staff, you will gain 0 marks An evaluation report will be made available. Due to time constraints, we will not accept any requests for re-evaluation of the assignment Important Please use the message board for resolving doubts.