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:
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.
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.