CS 235: Assignment 1

Due in class, Tuesday, October 11, 2005


DatingBase: Part 1

The programming project for CS 235 is to build an online dating (or community) site called DatingBase. The back-end (data tier) of DatingBase will be a mysql database management system. The front-end (presentation tier) of DatingBase will be a Web interface to its users. The interface and the database will be connected using scripts written in php (process tier).
The first part of your project is to design the DatingBase schema using an E/R diagram. Later on, you will transform the E/R diagram to a relational schema for the database, and you will create an actual database instance in mysql.

Your first step is to familiarize yourself with the domain of online dating (or communities). Some of the popular dating sites are: match.com, Yahoo Personals, and eHarmony. Some of the popular community sites are friendster, myspace, and orkut. The main characters in any dating and community site are the users, their profiles, communities, and events. Then, there are interactions subject to various rules and constraints. You can also model mechanisms for rating the users, communities, and events. Of course, there are other facets of online dating and communities that you can model such as real-world dates and venues.

There are many different ways to model the online dating (community) domain! As a rule of thumb, the total number of entity sets plus relationships for most reasonable designs should be in the 5-15 range. Intuitively you will sense if you model is too complex or too simple.

You should certainly include different kinds of relationships (e.g., many-one, many-many) and different kinds of data (strings, integers, etc.), but you are not required to use advanced features, such as subclassing, multiway relationships, or weak entity sets, if they are not appropriate for your model.

So, here is what you need to do for part 1 of DatingBase:

  1. Describe the model you propose in two to three paragraphs. Your description should be brief and relatively informal. If there are any unique or particularly difficult aspects of your proposed model, please point them out. Your description will be graded only on suitability and conciseness
  2. Specify an entity-relationship diagram for your proposed model. As always, don't forget to underline key attributes and include arrowheads and rounded arrows indicating the multiplicity of relationships. If there are weak entity sets, indicate them by double lines, as described in class.

Please, save a copy of your E/R diagram for reference as you do Part 2 of DatingBase.


Problem Set

You will complete the problem set using Gradiance, an online learning system, developed by a team led by Jeff Ullman.

First, you will need to sign up for a Gradiance account:

  1. Visit http://www.gradiance.com/services.
  2. If you have an account at this site, log in. If you do not have an account, click on "Create New Account", fill out the form, submit it to create your account, and then log in.
  3. After you log in to your Gradiance account, your home page will indicate the list of classes in your portfolio (if you had previous activity on your account).
  4. To sign up for a class, specify the class sign up token (given in class by your instructor) in the sign up form and submit it.
  5. Gradiance will redirect you to PayPal where you can pay your enrollment fee for your Gradiance class. You can also use a credit card instead of a PayPal account.
  6. After you have paid your enrollment fee and finish the sign up process, a link to your class will appear in the class portfolio on your Gradiance home page. You can access the class materials (homework sets, etc.) by clicking on this link.

The name of the homework is CS 235 Homework 1. All questions in this problem set are multiple choice. However, to answer them correctly you will need to work out their long (general) answers. A correct answer is worth 3 points. You lose a point for each incorrect answer. You can take the assignment as many times as you like; only your last score will count. Note that you will probably get slightly different questions each time you take it.