Project 5 Deliverable

Your final assignment is to build a ‘user-friendly’, web-based interactive application program front end to your PDA using a programming language that supports an interface to PostgreSQL. These include but are not limited to: C, C++, Perl, Python, Racket, Common-Lisp and Java. While a web-based interface to your database is required, do not spend too much time making it look pretty with CSS and such; I care much more about functionality than with appearance. You can find documentation on most of these options at the PostgreSQL Client Interfaces site. (If you want to use Racket and cannot find the package to require, check with me.) Regardless of your selected language, you will be turning in your code, which should be appropriately documented.


The interface to your database should conform to the following requirements:

  1. offer the user at least five (5) alternative options; an additional alternative should be quit;
  2. in the case of at least alternative option, the system should prompt the user for input values that are used to focus the constructed query;
  3. the system queries the database to extract the appropriate information or to perform the appropriate modifications, and finally
  4. display the data resulting from the query in a table or other appropriate format.
You should include both queries and modifications among your “five or more” options. For example, if your project was based on our in-class cars/drivers/dealers database, you might offer options such as:

I am not expecting anything fancy in the way of interface. Handling of SQL errors can be quite simple. As a minumum, write an sqlerror routine that just prints the error message from PostgreSQL. I am especially interested in how effectively you can utilize the database schema you have designed to support interesting and/or engaging user interactions.

Your interface should run either in a standard web browser but must be hosted on vwardrobe.


You will have five (5) minutes to demonstrate your program in class. These presentations will take place on Thur., Dec. 10th. You should prepare a short presentation that highlights the features of your project and exercises several of the functions of the interface as described above. You are not required to demonstrate every interface option if you want to spend more of your time describing interesting features of your project.

Submisions Instructions

Submit your program -- schema creation and table population scripts, interface code, and program logic -- together with a README and sufficient documentation for me to run it. At this point, your database should be populated with meaningful data. This means that the values of attributes in your relations should not be random strings. (Note, you do not need large tables; the artificial data was for testing joins with and without indexes.) As before, please create a tar (or zip) file named <your-dbuser-name>p5.tar and that expands to create a directory <your-db-name>p5, which contains all the files relevant to your program for this assignment. Make sure that your README file clearly identifies the URL on vmwardrobe where your application is running.