Semester Project
The goal of the semester 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 2-3 students. Students are
encouraged to pick an application domain that excites them, provided it has a
nontrivial database component.
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, using PHP, is expected.
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.
- Practicality: The application you build should be of practical use to a
sizeable community (at least in the foreseeable 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, timeliness, answers to
questions about the project, justification of design decisions, and
intermediate and final project reports.
There are several milestones we will follow to help you with assessing
progress:
- Groups formed: Feb 3
- Proposals: Feb 13
- E/R design: Feb 20
- Formal specification: Mar 13
- Sample end to end application: Apr 17
- Project demonstration and report due: May 7
10% of the final project
grade will be deducted for each day a milestone is late. Deliverables are due by
class time on the due date.
One member from each group must send an e-mail to me with:
- The members of the group.
- The group name.
- The URL of the group web page. Note: all documents posted to the group web
page must be readable on any OS platform. This rules
out posting MS Word documents, for example. You may post PDF documents.
Be sure to consider the following in selecting your partners:
- Project interests.
- Working style.
- Goals.
- Target grade.
- Availability outside of class.
- Strengths and weaknesses.
Do not be shy about interviewing
potential partners --- you are forming a short-term business venture.
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?
- 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. All group proposals must be
unique.
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.
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.)
- Updated division of labor.
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.
Each group must have a demo of their project. By May 7, 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. The documentation should address the
person who will be installing and maintaining the application. (That is, the
system administrator, not the end user.)