CSC309 Assignment #1
(due October 18th in tutorial)


Build a Web site for a company that sells posters over the Web. Customers can go to the Web site to browse and search the available posters, and submit an order.

You will first design an XML application to capture details regarding the posters. Examples of information you will want to include are a name for the poster, a link to a thumbnail image (don't worry about scouring the net for poster images, they can all look like "The Matrix" poster if you want!), artist, category of poster, keywords, size, price, identifier, and anything else useful you can think of. You should provide a fully-documented DTD for the XML application, as well as a fully-validated sample XML file used for your web site.

Your web site will consist of a set of statically-created XHTML pages together with the XML file discussed above and a set of XSLT scripts. The scripts will be used to generate the extra, content-bearing XHTML files. By no means duplicate any of the information contained in the XML files in your statically-created XHTML pages (the XML files must be the one source of information for posters - no hardwiring of anything, please!). The resulting Web site will use XHTML, CSS, frames, forms, and JavaScript to provide a pleasant browsing, searching, and ordering experience (no server-side programming is to be used - everything must happen client-side). Your XHTML should use correct XML syntax and use CSS style sheets in favour of deprecated HTML tags and attributes.

You will implement a client-side "shopping cart" to record posters that the user would like to purchase. The shopping cart should be always in view in a frame along the side. It will keep a running total cost, and allow for additions and deletions. When the user presses a "checkout" button, prompt for shipping and payment information, validate, and then, for this first assignment, simply generate a printable Web page containing the order information.

Hand in hard-copy of the following items.

As well, your site must correctly build and function. TAs will not debug so test to ensure it works the first time! Using the CDF submit command (submit -N a1 csc309h <files>), submit (all in one directory) all the necessary files. The main entry page for your site should be called index.html. The input XML file should be called posters.xml. One or more XHTML files (named as you please) should be generated from it. The Makefile should have at least three targets: 'make validatexml', 'make processxml', and 'make clean'. The first target should run your XML through the saxon validator. The second target should process the XML through XSLT to generate one or more XHTML files. Be sure this target, when run, prints out the names of the generated XHTML files. The third target deletes any files generated by the other targets. Your TA will run your website using the following actions:

Good Luck!