 |
C20.0046 Class project |
Notice the updated deliverable deadlines!!
General description and goal
The goal of the class project is to implement
an application of a database system. This includes
-
Finding an application for which a database
system would be required,
-
Modeling the domain of the application, and
defining the application functionalities
-
Designing and implementing the schema
-
Populating the database
-
Building the application
Projects will be done in groups of 3-4 students.
Students are encouraged to pick an application
domain that excites them, provided it has a nontrivial database component.
We make some suggestions below.
What should be in the project?
Every project should illustrate the following
features:
-
Conceptual design of the domain,
-
Schema design for the application,
-
Sophisticated querying,
-
Database updates,
-
Use of multiple views.
A web front end to the application will be
appreciated.
Guidelines for the class project
Here are some guidelines that should help
you make project decisions. Of the following, the first three guidelines
are the most important.
Effective use: Try to make effective
use of as much of the course material as possible. As we progress through
this course, try to incorporate what we learn into your projects. For example,
use joins, aggregates, indexes, triggers, etc.
Completeness: The project must be
complete and stable enough for a good demonstration at the end of the course.
This requirement is very important. If you are unable to give a reasonable
demonstration, your project grade will suffer greatly.
Database size: All project databases
must be of nontrivial size. You may interpret nontrivial based on your
application. However, (1) there should be at least 10 nontrivial relations;
and (2) the total number of attributes times the total number of tuples
should be at least 5000. (These are guidelines only; if you feel your application
warrants exceptions, come see me during office hours.)
Practicality: The application you
build should be of practical use to a sizeable community (at least in the
forseeable future).
Innovation: The more innovative
ideas you include in your project, the more credit you will receive.
Miscellany: In addition to the above,
your project grade will take into account factors such as teamwork, overall
effort, timeliness, answers to questions about the project, justification
of design decisions, and intermediate and final project reports.
Schedule
There are several steps we will follow
to help you with assessing progress:
Groups formed: January 27.
Proposals: February
3.
E/R design: February 17.
Formal specification: March
2.
Sample end to end application:
April 4.
Projects due: April 25.
Groups Decided
One member from each group must send an e-mail
to c20-0046-help@egroups.com
with:
-
The members of the
group
-
The group name
-
The URL of the group
web page
Proposals
Students must put on their group web pages
(this should only be a page or less long):
-
Project description: what is the domain, what
aspects of the domain will be modeled by the database.
-
What are the application specifications? I.e.,
what functionality will the system provide?
-
What is the role of each project member in
the project?
-
What software do you plan on using?
-
Schedule: what are the landmarks in your work.
-
Other, more specific comments if appropriate.
The proposals are meant to get you to start
thinking about the project, get into groups and create a plan.
E/R design
Each group must post to their project web
site
-
E/R diagrams
-
Relational schemas
-
A written description detailing exactly what
data their database will contain.
Formal Specification
Each group must post to their web site:
-
What data they will have in their final application.
-
What tables are you creating, containing what
pieces of information each.
-
That means revisiting your design and figuring
out for good what tables you need to create, taking into account the principles
of good design and your desired functionality.
-
What constraints exist and how they are modeled
-
What functionality the final application will
have; each project should have at least one cool feature.
-
The tasks each user of the system (including
the system administrators) will be able to perform with your application.
-
What the platforms of the final project will
be (e.g., Access, Visual Basic, Windows 2000).
-
Updated division of labor.
Sample end to end application
Each group must post to their project web
site
-
A couple of screen shots of their application
running a simple query: getting the data from the database, and putting
it into a simple version of the final application of the project.
Completed project
Each group must have a demo of their project.
By April 25, each group must have on their
web site in its final form (no working after the deadline):
-
A short description of the finished
project.
-
A description of how this differed from
their formal specifications, if at all.
-
Documentation for their application,
max 4000 words.
Also by April 25, each student is required
to email the instructor with the following information:
-
How long did you work on the project?
-
What did you like the best about the
project?
-
What did you like the least about the
project?
-
What helped you learn the best in the
project?
-
What distracted from your learning in
the project?
-
If you could change the way that the
project was organized, what would you change?
Answering these brief questions will help
us make the project better.
Project ideas
The following ideas are merely suggestions
- you have to flesh out your specific application.
Movies and reviews database
Online store (books, CDs, mp3s etc)
-
Support browsing, searching, shopping cart,
personalization.
-
Model and include product information such
as hierarchy of book topics, or music genres.
Apartments
-
Model apartments and their properties, areas
of town and their various properties (e.g., bus lines, crime rate distance
from various landmarks).
-
Offer apartments for rent, browse apartments,
query using specific criteria.
Library DB
-
Search collections, check status.
-
Integrate with Bobst (hard)
Job classifieds database
-
Openings, contacts, references, reviews, requirements,
bidding, ...
Database of web sites
-
Model web sites: topic, url, organization
to which they belong, other sites they point to, reviews of the site, quality,
etc.
-
Update capability: New sites, new reviews
of sites.
-
Browse and search capabilities.
-
Personalization.
See Yahoo.com for a partial inspiration.
Room scheduler
Historical stock price data
-
retrieve, parse, and store stock price information
from *public domain* sources over time.
-
implement browsing and querying that can be
used to discover trends, records, trivia.
Stern administrative database
(simple idea, you have to come up with interesting
functionality).
Personal Information Manager (PIM)
-
contacts, addresses, phones, ...
-
appointments
-
diary
-
to-do list