Course Links

Assignments

Resources

External

The last assignment is designed to pull together and finish the project you have begun in previous assignments. First you identified a topic and produced a schema for the data involved. Then you implemented a database based upon this schema and populated it with entries, creating pages with static queries to display the data. The last step is to expand your page with dynamic queries and the ability to add, delete, and update entries.

Requirements

For this assignment, rather than starting with a list of requirements and checking them off, you should consider the functionality needed to make your site useful as a whole. Only when you have a firm vision of how the site should work should you consider the individual requirements stated below. This will help you to produce something more like an integrated whole and less like a series of pages designed to satisfy a checklist.

That said, your site should allow the user to insert entries, delete entries, and update entries from at least one table in the database (although not necessarily the same one for each). Most likely your application will require that you can edit information for more than one table, perhaps at the same time. In any case, the controls should be designed according to the typical user's conceptual view of the data, not according to the underlying table structure of the database. Thus (to use an example form the labs) editing the information relating to a person means not just changing their name and belt level, but their dojo affiliation and teaching responsibilities as well -- even though those are stored in separate tables.

For top credit, your project should make use of at least one PEAR package in a nontrivial manner. (This part of the assignment may be waived if we do not have time to consider PEAR fully in class.)

Most important, your web site must include a design document. This is a page separate from the rest of the site that describes the choices you made as you developed the project. Use this to justify any difficult or possibly controversial decisions. Describe questions that came up, difficulties faced, etc. This is your chance to reflect on the development process. It should also serve as a guide to my grading, discussing how you satisfied each of the requirements described above.

Evaluation

Evaluation of your project will focus on several aspects. I will consider questions like the following, in decreasing order of importance. Does it fulfill the requirements listed above, including the design document? Is it technically correct, functioning without error or the possibility of error? Does the interface design meet the requirements of the application? Is the scripting clear, documented, and well-organized? How easy is the web site to use? Does it allow the user to make any desireable change to the data? A portion of your grade will be entirely subjective, based on how well your work demonstrates an understanding of the concepts taught in class.

This course has not focused on web site design or appearance, and these will not factor large in the grade of the site. However, you should make your site neat and easy to navigate. If it also looks attractive, so much the better.

Next Year

Include a control that will revert the database to its initial state, i.e., the state in which it is ready to grade. This way I can make edits to the data without fear of destroying anything crucial. (The easiest way to do this is probably to save a backup copy of the original database file, and overwrite the working copy with it.)