* Home
* Description
* Overview
* Schedule *
* Projects
* Grades
* Discussions *
CIS 8140 Projects
Details on the various project deliverables (see the schedule for exact dates) will be posted
here.
The project grade will be distributed with the following breakdown:
- Proposal: 15%
- Conceptual model/schema: 40%
- Implementation: 40%
- Misc. (group interaction, meeting logs): 5%
An initial team formation will be done in class on Aug 28/30.
Each team should have at least three members - you can form your
own team - we are going to use a little bit of the class time to
assign the students who have not included themselves in a team
yet. Teams can have three or four members. If you feel that you need
five people in the team, you are welcome to do so, but you will need
to make sure that the team logistics are handled appropriately.
Team logistics and duties: The following are
duties that each team will need to adhere to, at least initially:
- Team member roles: You will need to assign the
following roles to each of your team members. These roles do not
need to be permanent, but can be floating (i.e., you can change
roles over the course of the semester). The same person can
fulfill multiple roles, while a member may not have any of the
special roles.
- Team leader: The leader shall coordinate team meetings,
assign tasks, and in general ensure the proper
functionality of the team.
- Documentor: The documentor will note down minutes of each
team meeting, specific decisions made in the meeting, and
outcomes of any important decisions. Ensure that all the
meetings are properly logged - these logs will need to be
included in your final project report.
- Guru: The guru is a special role who will be the most
knowledgeable person about the project platform. This
person will need to use the first few weeks to learn as
much she can about the platform, and if necessary, train
the rest of the team members.
- Code leader: This person will be the main
programming/implementation person. She will have to ensure
consistency of the implementation, keep versions and
backups of the implementation.
- Instructor contact: This will be the person who will serve
as the contact for me on behalf of the team. If I have any
questions regarding the project, or if you have questions,
this person should be available to come and meet me or
communicate with me.
- Team meetings: Starting the week the teams are
formed, each team should meet for at least 15-30 minutes
each week to discuss project issues. The first meeting could
be used for deciding team member roles. You will need to
find a common time to meet. If other times are hard to find,
you can meet immediately before or after the lecture
time.
- Team communication: The documentor of the team
should keep an email folder containing email communications
within and outside the team regarding the project. As usual,
most communication will be via email, but you can also think
about other means of communication.
due date: by the end of the week of Sept Jan 31/Feb 1. But please
try to hand in earlier if you want feedback by the week after.
The proposal is the first among the documents that you will be
handing in for the project. Each team should hand in
exactly one document. If you are submitting via email, the submission
should come from the instructor contact of your team. The proposal
does not necessarily have to be a very detailed document, but at least
the following information must be included:
- Who is the client? Include full contact information,
including name(s) of primary client contacts, addresses, telephone
numbers, and any other pertinent information. As I mentioned in
earlier, you should try to have a real-world client in a
real-world project, instead of making one up for yourself.
- What is the main purpose of the project? This
should be between one and two paragraphs, and should describe
briefly the main goals of the project and what goals it is
supposed to fulfill.
- Is there an existing method and system? Is this
database going to replace an existing system (which could be
paper-based, file-based, or even just word-of-mouth based)? Does
the client have some means of performing the task? What are the
advantages and drawbacks of the current system/method that the
client has?
- What kind of data will be stored? Here, describe the
data that will be in the system. Be as detailed as possible,
including names and descriptions of various types of
data. Notice that you are not performing any relational design
yet, so it is okay to list everything that will be stored,
without any mormalization.
- What types of problems will this database solve?
In this section, describe the types of searches, reports, outputs,
queries that the client expects from the system. You do not need
to worry about whether or not these are feasible.
- How much time will this project take? Estimate the
number of man-hours this project will take. Please itemize the
man-hours according to the different phases of the database
development cycle (proposal, analysis, design, implementation,
testing/debugging, installation and maintenance).
There is no minimum or maximum page-number limits for this
phase. But remember, the more you put down on paper now, the easier it
will be for you to decide things later.
due date: by the end of the week of Feb 14/15.
In this milestone, you design a process and data model for your
project. As discussed in class - this is the first step towards
implementing your project. In this milestone, you will need to ensure
you have all your issues resolved, all questions answered from your
client. After this milestone, there should be no more changes to the
requirements.
For this milestone, you do not need to formally submit anything,
but you will need to meet with me during my office hours or around
class time, or make an appointment to see me at a different time.
- Level 0 and Level 1 data flow diagrams: Create
the top level (level 0) and level 1 data flow diagrams for this
project. Make sure you follow all the guidelines for data flow
diagrams. In particular, you will need to ensure that all flow
connectors (except those connecting to files) are properly
labeled, and all lower level diagrams use the same inputs and
outputs as the higher level data flow diagrams.
- ER diagram: Create an ER diagram that includes
all entities, relationships, any weak entities/relationships,
and ISA hierarchies if any. You can only display the most
important attributes for each of the entities. Use the more
concise method shown in class (see lecture notes 5, slide 21) in
your ER diagram. Ensure that you display proper cardinality and
participant constraints for every entity-relationship
connection.
Due date: by the end of week of Mar 14/15.
In this milestone, you will need to design the database schema for
the project. This essentially involves taking the ER model from the
last milestone and mapping it into the corresponding database
schema. Specifically, you will need to do the following:
- Fix any problems with your ER model (use my comments as a
guideline).
- Map the new ER model into the relational schema, ensuring a 3NF
design in your model. To ensure 3NF design, you will basically
need to look into each of your tables, and make sure that you
know exactly what the primary key is, and that all the nonkey
attributes are directly related to the complete primary key.
Submit the following (in a single file, please. MS word,
powerpoint, pdf formats okay).
- Modified ER diagram and data flow diagrams.
- My comments from Milestone 2a, and for each of the comments one
or two lines of explanation regarding how you either fixed the
problem or how it was a normal issue in your project.
- Relational schema, containing:
- Name of each table.
- Names, data types and sizes of each attribute, including a
line of explanation on each. You may find it useful to
actually build these tables in your database and copy and
paste the structure of the table.
- Primary keys and indexes (optional)
due date: by the end of the week of Apr 25/26.
Well, you guys have come across a number of hurdles, now the last
one. This is hopefully not going to be the most painful one, given the
amount of preparation that has gone into this system.
What do I want from this project?
I want to ensure that the project was at least a learning
experience for you as a database development exercise. I do not like
assigning minimum requirements for the project, but obviously I need
to keep a standard to ensure that people are not going away with
trivial things. So, here are some of the criteria that you will need
to have:
- A well-organized menu. The menu should provide users access to
all the forms, that should, in turn, provide access to all
tables of the database (except fixed lookup tables). In other
words, I do not want any user having to be modifying any tables
directly.
- Friendly forms. The forms should contain as much help
information as you can provide. This may include help buttons,
status bar messages, helpful error messages, and the likes.
- Number of tables and queries. This is the most debatable area. A
quick number of estimate on the number of tables would be at
least twice the number of team members, a minimum of 6. This
excludes fixed lookup tables.
- Helpful forms. You should use subforms whenever possible so that
users do not need to manually insert foreign keys. If they
absolutely have to, then you should provide them with popups to
choose from.
- Queries - I will look back at your proposal to make sure all
queries that you proposed can actually be solved by your
project. Make sure all proposed queries are implemented.
What do you need to submit?
First of all, my email account is overflowing, so I am thinking
about using a different email address for the final project. Send your
email message (only one per team, please! submit only when you ensure
you are completely ready.) to Arijit.Sengupta@eci.gsu.edu
with the following attachments.
- Of course, the database. Those of you writing in access, please
go to Tools - DB utilities - compact database before
submitting. Those of you using powerbuilder, please make an
executable file that you should submit. Those of you using a web
version (cold fusion, java, whatever) - please place your
project in an accessible web server, include the web address of
the project, and a zipped version of all files needed for the
project.
- A writeup containing the final ER model, what parts, if any, of
the database was not implemented and the reasons behind
them. Also include in this writeup, your experiences with the
project - what you liked about it, what you disliked about it -
how it could be improved, and whether or not you would like to
see your project continued in a subsequent semester by another
team of students.
- A complete log of your team meetings (remember, I said I will
ask for this?)