Semester Project

General Description and Goal

The goal of the semester project is to implement an application of a database system. This includes:

  1. Finding an application for which a database system would be required.

  2. Modeling the domain of the application, and defining the application functionalities.

  3. Designing and implementing the schema.

  4. Populating the database.

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

What Should be in the Project?

Every project should illustrate the following features:

  1. Conceptual design of the domain.

  2. Schema design for the application.

  3. Sophisticated querying.

  4. Database updates.

  5. Use of multiple views.

A web front end to the application, using PHP, is expected.

Guidelines for the Semester Project

Here are some guidelines that should help you make project decisions. Of the following, the first three guidelines are the most important.

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

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

  3. Database size: All project databases must be of nontrivial size. You may interpret nontrivial based on your application.

  4. Practicality: The application you build should be of practical use to a sizeable community (at least in the foreseeable future).

  5. Innovation: The more innovative ideas you include in your project, the more credit you will receive.

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

Schedule

There are several milestones we will follow to help you with assessing progress:

  1. Groups formed: Feb 3

  2. Proposals: Feb 13

  3. E/R design: Feb 20

  4. Formal specification: Mar 13

  5. Sample end to end application: Apr 17

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

Groups Decided

One member from each group must send an e-mail to me with:

  1. The members of the group.
  2. The group name.
  3. 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:
  1. Project interests.
  2. Working style.
  3. Goals.
  4. Target grade.
  5. Availability outside of class.
  6. Strengths and weaknesses.
Do not be shy about interviewing potential partners --- you are forming a short-term business venture.

Proposals

Students must put on their group web pages (this should only be a page or less long):

  1. Project description: what is the domain, what aspects of the domain will be modeled by the database.

  2. What are the application specifications? I.e., what functionality will the system provide?
  3. What is the role of each project member in the project?

  4. Schedule: what are the landmarks in your work.

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

E/R Design

Each group must post to their project web site:

  1. E/R diagrams.

  2. Relational schemas.

  3. A written description detailing exactly what data their database will contain.

Formal Specification

Each group must post to their web site:

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

  2. What constraints exist and how they are modeled.

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

  4. Updated division of labor.

Sample End-to-End Application

Each group must post to their project web site:

  1. 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 May 7, each group must have on their web site in its final form (no working after the deadline):

  1. A short description of the finished project.

  2. A description of how this differed from their formal specifications, if at all.

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