NYU Database Systems (Spring'2000)

Project: nyushop.com


Description

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.

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

Customer functions:

  1. Check for the availability of a movie -- anyone on the web should be allowed to this
  2. Set up an account (with credit card number, shipping address, user id, password)
  3. Change account information
  4. Delete account
  5. Buy a movie -- only an account holder can do this. (user can buy either the video cassette or DVD version)
Shop Employee functions:
   Employees can login using a special id to do the following:
  1. Add/delete/update movies (movie info, number of copies, price)
  2. Announce a store-wide discount sale
Company Management functions:
    Managers in the company (not ALL the employees) will use special user id to do the following:
  1. Add/delete/update employees (with all pertinent employee information)


Two-Person Version

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:

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

Getting Started

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 web page:

Using MySQL

Read this on web programming with CGI and the cgilib library for C/C++.

Questions & Answers

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

Project Groups:

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.

Grading

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?

  1. Use all the database design and programming skills learnt in the first part of the course
  2. 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