CS3811 - Project 2005
2005 January 31
- Your work will be done by a team of 2 or 3 and
all members of each team will participate in all phases of the
project. That is, each team member will contribute to the
design, implementation and documentation. Each team member is expected to
become familiar with mysql/php, and each team member must take part in
writing the User Guide.
- Normally, all team members will receive the
same grade for the project. Therefore, you will
contact the course instructor if you do not participate fully
with your team in the completion of any of the three phases
of the project.
- The project forms a major part of the
assessment in the course. Late submission of a part of
the project will result in a penalty of
.67 grade points per day for up to three days,
after which that part of the project will be graded incomplete.
- The grade for the project will be based about equally on the
results of each of the three phases.
- After carefully considering the project outline,
your team will select one of the two application domains
below and report this choice by email
to the course instructor. Only one team may select
each project: first come, first served.
- You will have noted that this is an HTML document.
The visual presentation of your documents will be considered in grading.
TeX or HTML are acceptable for achieving good presentation.
Word-processing systems may also provide suitable formatting, but are
- A presentation of your project will be done in class
during the last week of classes, and we may have time for short
presentations on the designs about March 7.
- You will spend about five hours
each week outside of class
on this project (but you must not exceed 6-8 hours in any week).
This provides at least 50 hours for completion
of your part of the project, more time than necessary.
You will provide a log listing time spent on the project.
The project completion
date is April 6. On that date a final version of the
Design document, the User Guide and a dump
of your database will be handed in.
You will use mysql to construct your database and you will construct a
front-end using php. There are two choices for
the application domain (see below), but the main elements are common:
First phase: Design.
- You will consult with the client
about what is expected from the database application.
You will consider the attributes, entities, relationships,
constraints and views which your
system needs, and design an E/R (or sketch) model.
This model will be translated into the design of a relational database.
Your database design will include examples of the main elements of relational
systems (primary keys, foreign keys, other constraints ...);
normalization is expected. You will document the design, including
normalization, and provide it
to the client and course instructor in draft form byFebruary 28,
and in final form, after consultation with the
course intructor, by March 9. The design document will not exceed
10 pages (single-spaced, minimum 12 pt type).
In order to facilitate your work in the second phase of the project,
we will examine features of mysql near the end of the
Second phase: Implementation.
- You will construct a
mysql database and accompanying php forms using
an assigned account on the Math/CS server. The implementation is required to
follow your design document.
Your forms will allow data entry, updating and access to the database. They will
also enforce integrity.
You will consult with the client and course instructor using a prototype during the
implementation phase. At this time you will consider user views
and security issues.
Third phase: User Guide.
- Of course, this part of the project will be developed from the design document
simultaneously with the second phase.
It will include instructions on using mysql and/or your forms for naive users.
You are not expected to give an instruction manual for mysql or SQL,
but you should write clear
explanations of how to get into and out of the program and access your forms,
how to use the forms for entering/updating data and how to write simple SQL
queries. The User Guide will not exceed 15 pages.
A draft of the User Guide will be provided to the
course instructor by March 28.
The applications are being designed and implemented for clients in the Mount Allison community. You will be provided
with coordinates for the client of your application immediately after
your team is assigned to an
application. You will have 90 minutes available for meeting with your client over
the course of the project. You may use up to 60 minutes of this time during the
More time with the client may be available at the client's discretion.
Time with the client will be included in your time log.
You are expected to consult the client after design completion
about implementation requirements. Client availability times will be determined by the client.
Short, client-provided descriptions of the applications follow.
Application 1: The Mount Allison Flora
We are constructing an inventory of all of the plants - trees, shrubs etc. - that are on campus.
For each plant we are compiling data on place of origin, date of planting, what the plant is used
for in different cultures (food, clothing, medicine etc.), various botanical features of note,
and photographs of the plants at different times of the year. The data will be used on and off
campus by students in different courses (Biology, Anthropology etc.), scholars, physical plant staff,
and visitors (e.g. summer conference visitors) just interested in learning something about the
plants they see around the place.
We need a database that can be easily accessed by these different users, who will probably
have very different questions to ask. For example, one group might wish to know the location of
all the plants of Chinese origin, whereas another might be interested in knowing when we
planted native plants that have been used for medicinal purposes by first nations groups.
Note: This client will be unavailable for a week from February 4.
Application 2: The San Felice Archaeological Excavation
This archaeological project is investigating a Roman villa site in southern Italy.
The information recorded about the site falls into two main categories.
First are the field records of the contexts (description of the layer or feature as they are excavated;
these records will include things like a description of the soil, the methods used, and the relationship
of one layer to others around it; the records will often include drawings and photographs).
The second group of records are the finds (taken from the field, cleaned, divided by category,
numbered, and described; often photographed individually; sometimes drawn).
A database is needed that will allow the information about the contexts and the finds to be
transferred from the written field records and to be stored. This database should allow a user
to combine searches for different elements in the study of the site
(for example to show all examples of a particular type of find and to indicate their origins;
or to show the range of finds connected with a specific layer or feature). In this way
the archaeologists involved in the project will be able to study the relationships between the
different contexts and objects and will be able to offer an interpretation of the site and its history.