Project 5 Deliverable

Your final assignment is to build a "user-friendly," interactive application program front end to your PDA using one of the programming languages supported by PostgreSQL. These include: C, C++, Python, Lisp and Java. There is also an ODBC driver that may be used. You can also use PHP to create a nice web-based interface to your database. You can find documentation on most of these options at the PostgreSQL Client Interfaces site. (If you want to use Lisp, check with me for info on the Lisp interface to PostgreSQL.) Regardless of your selected language, you will be turning in your code, which should be appropriately documented.

Requirements

Your program should consist of a continuous loop in which:

  1. A list of at least five (5) alternative options is offered to the user. An additional alternative should be quit.
  2. The user selects one of these alternatives.
  3. The system prompts the user for input values that are appropriate for the selected option.
  4. The system accesses the database to perform the appropriate queries and/or modifications.
  5. Data or an appropriate acknowledgment is returned to the user.
You should include both queries and modifications among your "five or more" options. For example, if your PDA were based on our running cars/drivers/dealers database, you might offer options such as

I am not requiring anything fancy in the way of interface. For example, if you do not use a Web form, then a menu printed via printf is acceptable. Also, 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.

The interface to your PDA should run either in a standard web browser or as a user application on vwardrobe.

Presentations

You will have ten (10) minutes to demonstrate your program in class. These presentations will take place on Wednesday April 27th. You should prepare a short presentation that highlights the features of your project and exercises 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. (However, I will be testing every option with several inputs so make sure they all work.)

Since each of you will be demonstrating your Project from my laptop, make sure you submit your assignment to Eureka with all necessary files by the due date and time.

Submisions Instructions

Submit your program -- schema creation and table population scripts, interface code (either html or other), and program logic -- together with 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. As before, please create a tar (or zip) file named <your-db-name>p5.tar and expands to create a directory <your-db-name>p5, which contains all the files relevant to your program for this assignment.

If you build a Web interface to your database that allows the sorts of options described above, then in addition to your code, please include in a README file: the URL to where your code is published as well as some directions and data values that will give nontrivial interactions. In this case, your project should be kept on some server that is normally available, such as with your student home page or a machine that you control that happens to have static IP address.