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


Build a Web site for a company that sells modular stereo cabinets, an example of which is pictured here.

Customers can go to the Web site and browse the available collection of modules which includes base units, vertical extension units, peninsulas, bridges, drawers, sides, backs, and doors. The base units and extension units come in either single or double-width (called "twin") and heights of 20, 30, or 40 inches tall. Extensions can be added either above or below base units (or both). Sides, backs, and doors also come in heights of 20, 30, and 40 inches to match. The doors are smoked glass with a trim. The material on any module can be a choice of black, cherry, walnut, or maple, except that drawers only come in cherry and maple, doors are not available in walnut trim, and backs must be black. (see images on the Web page).

Design and document an XML file format for holding information about the various modules, including their names, image files, dimensions, prices, finish options, availability, expected shipping times, and any other potentially useful items of information. Provide a full DTD to define your schema, and provide the full, validated, example file for this application.

Next, design a static Web site (no client-side scripting or forms - marks off if you do!) that displays information about the company and its products (no ordering capability for now - information only). Part of this Web site must include HTML generated via XSL from your XML file. To keep things simple, XSLT will be run by a Makefile before the site is installed (i.e., neither the client nor the server will run XSLT). Your HTML should use (where possible) CSS style sheets in favour of deprecated HTML tags and attributes. You must use at least some CSS, and the more the better (remaining tasteful at all times, of course). All appropriate files (including XML, HTML, and XSL) should use strict XML syntax: end tags, quoted attribute values, appropriate preamble, …

Hand in hard-copy of the following items.

As well, your site must correctly build and function. Using the CDF submit command (see tutors for detailed instructions), submit (all in one directory) the XML, DTD, XSL, HTML, CSS, image files, and a Makefile. The main entry page for your site should be called index.html. The input XML file should be called items.xml. One or more HTML 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 standard CSC309 XML validator. The second target should process the XML through XSLT to generate one or more HTML files. Be sure this target, when run, prints out the names of the generated HTML files. The third target deletes any files generated by the other targets. The TA's will run your websites using the following actions:

Good Luck!