CS 4604 Project Assignment 6
Assigned on November 18, 2008. Demos Start December 2, 2008.
The goal of this step of the project is to interface your database with a programming
language and to make it web-accessible. This is the stage where you embed your
database into a complete application. PHP is installed on the CS Web server.
By this facility, the PostgreSQL database that you have created can be accessed
via the web.
FAQ: Can we use our own database server and web server?
Answer: Yes. You are welcome to do the project completely on your own computer.
Notice that this step of the project involves having a DBMS (MySQL, PostgreSQL,
Oracle, SQL server etc.) and drivers for accessing the database from the programming
language you will use to implement your web interface. Depending on how you choose
to demo your web interface, your computer may also need to be net-accessible (so
that people can access the web pages that are stored in your computer via the
world wide web). In addition, you may need to install PHP (if you decide to use
PHP for your web interface), and a web server that you can operate on your computer.
In short, if your setup allows the facility to create web pages and make them
publicly accessible on the Internet, you are in good shape. If you choose this
option, you take full responsibility for ensuring that your machine supports all
the desired functionalities. We will not be able to accommodate any last minute
requests for extensions because something is not working. We provide this option
for your convenience, so that you can take advantage of any already existing setup
for your project. Do not attempt this unless you are absolutely positively sure
of what you are doing. We do not have the resources or the manpower to provide
technical support and help in debugging. At the end of the day, we will grade
it just like every other project.
FAQ: Can we use
ASP/Ruby-on-Rails/AJAX/COMET/substitute-the-latest-buzzword-here/ for the
project?
Answer: Certainly! However, you are on your own. We do not have
facilities to support these in the lab, nor to provide technical
support.
Preparatory Steps:
- Select one person in your project in whose directory you will create
the files for the web interface.
- Create a directory called cs4604 in this person's home directory
on /web/people/personChosen. You can log into this machine using
your SLO id. You will be able to create/access this directory from any machine
on the rlogin cluster as well.
- Make your home directory world-executable (chmod a+x
~), the cs4604 directory world-readable (chmod a+r cs4604).
- Place all your scripts and files inside this directory.
- You can access your website at the following URL: http://people.cs.vt.edu/~"selected
person"/cs4604 directory/"start file name".php.
Help with PHP
We are not learning PHP in class. With your skill and experience in programming,
you should be able to pick up a scripting language such as PHP very easily. Here
are some good documentation resources:
There are different ways in which you can access the
PostgreSQL database from your PHP program.
- The PostgreSQL module supports
several PostgreSQL-specific commands.
- dbx is a database
abstraction layer that provides a nice high-level interface to databases but
is restricted in terms of functionality.
Style Guide for your Application
What we want to see at the end of the day is a single web page, that provides
a nice interface to your database. Feel free to do more fancy and creative things,
but do so only after completing this "core" requirement. We have a style
guide for what this page should look like.
What you should turn in
You have two options:
- One team member from your project should send the URL for your web page
from where we can access your application. Send email with the information
to the instructor and to the TA. Notice that this URL could be located on
people.cs.vt.edu or on some server that you run yourself. If you
choose the latter option, then it is your responsibility to make sure that
the server is up and running when we try to access your web page.
- One team member send an email to Haiyan to set up a time for a demo. Expect
the demo to last 15-30 minutes. If you choose this option then bring the print-out
of your project report to the class on Dec 02, 2008.
What your project will be graded for
Here's the distribution of points:
- (30 points) Does everything work correctly and do all the buttons and links
that we click indeed do what they are expected to do? We will see if you are
really accessing the database dynamically and are not just "looking up" the
data from some ready made source. We will ensure this by typing ad-hoc queries.
Make sure all integrity constraints are preserved. You will also need to make
sure that all query results have column names neatly presented and that data
is clearly tabulated.
- (20 points) A project report where you summarize all steps of your project
in a single document. If possible, include snapshots of your web interface.
This report can be easily created by cutting-and-pasting all the previous
reports that you submitted, making sure you include the E/R diagram, the details
about normalization, your relational schema and, the queries you created in
the project. Include the role of each team member in the project. Clearly
identify the scope of everybody's contribution. If there were any problems
during the course of the project (due to less than complete participation
by some team member), identify them. Include your answer to the next question
too. You do not need to submit your report separately; just link it from the
web page that you turn in from which we can download it. We would like a soft
copy because we want to link to these reports and projects from the course
web page at the end of the semester.
5 of the 20 points are reserved for neatness, presentation, style, consistency
etc.
- (45 points) Implement inserts, updates, deletes, etc., or some more complex
queries. Make an interface and connect it to the database. You can have a
simple interface (with or without any graphics), but fancier interfaces will
have a chance to get EXTRA credit points. In your project report, clearly
list exactly what you have implemented for this step and how we can test it.
- (5 points) Attendance is mandatory for Project Presentations on Dec 02 and
Dec 04. There will be a Roll-Call BEFORE the first presentation starts. If
you come late, you will lose the points. Please note:
- One-Member Teams: You have to attend both lectures.
- Two-Member Teams: Both team members have to attend both lectures.
- Three-Member Teams: A minimum of two team members have to attend both
lectures. The same team member cannot miss both lectures.
You can get upto 50 points of extra credit, depending on how complex
your application is. Here are some suggestions for this step:
- Create a more visual or sophisticated interface for your web application,
not just the vanilla style template shown above. If there is a more "natural"
way for your application, maybe you will write some cute little interface
for it.
- Address other aspects of your application, such as transactions, etc.
In you project report, clearly state (in a section titled "Extra Credit")
what features you have implemented and why. Include screenshots, if applicable.
For example, if you decide to provide a sophisticated interface, clearly state
why this interface is "natural" for your application, and how it
facilitates the user-experience.