Project 5: User Interface

Your final assignment is to build a ‘user-friendly’, web-based 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 appearance. You can find documentation on how to make your program interact with your database 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.


(10pt) Your front-end should provide a non-sql interface to the power and potential that you designed into your database. You should include options for users that require both queries and modifications of the underlying database. 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 appearance. Handling of SQL errors can be quite simple (but must be reported) and you should inform the user when modification operations were successful. 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 in a standard web browser but must be hosted on vwardrobe.


(10pt) You will have a fixed amount of time to demonstrate your program in class. The details for the date of these presentations and constraints on time allotments will be provided on the relevant Canvas page. You should prepare your presentation to highlight the features of your project and exercise as much of the functionality as is possible in the limited time. You are not required to demonstrate every interface option if you want to spend more of your time describing interesting features of your project. You should plan to present at least some of your code that you think is interesting or cool. As with all presentations, plan your font sizes accordingly.

Submisions Instructions

Although you will be giving in-class presentations you will still submit an archive to Eureka. 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. If you used presentation software for your presentation, include a pdf version of your slides.

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