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:
- 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
- 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:
- Visit http://www.gradiance.com/services.
- 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.
- 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).
- 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.
- 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.
- 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.