NYU Database Systems (Spring'2000)
This project will involve developing a reasonably complete
web-based database application. Your goal is to develop a web-site and
all the backend required for managing and using an E-Commerce site that
sells Movies (video cassettes, DVDs) over the web.
The project has two versions, based on whether it is being
done by one or two person groups. The basic difference between the two
is that the one-person project will involve a single shop whereas the two
person project will allow multiple shops to sell the same product. Everyone
must read the one-person version below, and then move onto the slightly
larger two person version.
I am going to describe the basic functions supported by
your web-site. It is your job to figure out the entities, tables needed,
queries to be supported, user interface, and the data to be stored in the
database for demo purposes.
Your web-site will be used by these kinds of people: customers,
shop employees, and company management.
Shop Employee functions:
Check for the availability of a movie -- anyone on the web
should be allowed to this
Set up an account (with credit card number, shipping address,
user id, password)
Change account information
Buy a movie -- only an account holder can do this. (user
can buy either the video cassette or DVD version)
Employees can login using a special
id to do the following:
Company Management functions:
Add/delete/update movies (movie info, number of copies, price)
Announce a store-wide discount sale
Managers in the company (not
ALL the employees) will use special user id to do the following:
Add/delete/update employees (with all pertinent employee
This will involve all of the functionality described above,
with the addition that there will be two companies selling the movies.
Customer can shop from a specific movie company (similar to above) and
each company can be managed as above. In addition you will be providing
the following new feature for the customers:
Customer can search the movie (using a single form) in both
the vendors' databases, find the lowest price of the movie, and buy it
from that vendor (comparison shopping).
You will design the relational database (table schemas) using all the nice
design skills we discussed in the class. First, you will design the E-R
diagram; then translate it to Relational Model with all the necessary normalizations.
Recall CGI, HTML, and programming from your first assignment. They will
be needed here.
In addition, you will be using the MySQL DBMS provided by me for storing
all your relational data. Your CGI program will interact with MySQL using
the MySQL program interface. You can get some help on this at the following
Read this on web programming with CGI
and the cgilib library for C/C++.
Questions & Answers
Can I use a fancy 4GL tool like Delphi/PowerBuilder that lets me create
this application in a jiffy? To be fair to others, and to keep it non-trivial,
NO. You have to use a programming language.
What language should I use for the backend program? -- I recommend C or
C++; but you can do it in Java/Perl if you like. However: all the tools
I will be providing to support your programs (cgilib, dbms) will primarily
support C or C++; if you write programs in Java, it is your responsibility
to furnish these tools for yourselves.
What/When to hand in
To make sure that you will get started on this project sooner, rather than
rushing towards the deadline, you will have TWO DEADLINES.
Due on 30/March: E-R Diagram and the Relational Table Schemas for
the entire application database .
Due on 20/April: A one-page report listing the working features
of your application (which may be more than what I have listed above) and
the URL of your web-site.
You will be giving demos to the TAs soon after this deadline.
You should decide your team (preferably a two-person team, but one-person
teams are also ok) by March 2nd and send me an email with the NAMES
and IDs of the team members.
You will be graded on a) correctness of the program b) nicety of code
and design and c) user interface (keep it simple). There will also be
significant bonus marks for innovative and useful features beyond what
I listed above.
Why are we doing this?
Use all the database design and programming skills learnt in the first
part of the course
Get skills designing an e-commerce site so that we can go out and make
some real money! :-)
Vishy Poosala, 2/21/2000
Back to Course Home Page