Class Project Guidelines

Ideally groups will consist of four members, or possibly three members. Under special circumstances I will allow groups of size 1, 2, or 5 members.

Groups are responsible for:

  1. Research a project - coming up with an application area or an idea for a project. 
  2. Obtain tentative approval for the project topic. Occasionally I will judge a topic as unsuitable.
  3. Present the instructor with a one to two page summary of the project including the name of the project, team members, and an E-R diagram of the project. .
  4. Obtain approval for the project. Teams should not proceed with their project until the instructor has approved the topic.
  5. Create tables including keys and constraints and indexes.
  6. Put data into the tables. Some of the data must be input through a user interface designed by the team.
  7. Write application code (forms and reports).
  8. Demonstrate your project to the instructor.
  9. Hand in a final report.
  10. Hand in an evaluation of each team member (including yourself).

Project Ideas

You are encouraged to come up with projects of your own. The project ideas listed below can serve as a guide or as inspiration for a slightly different project. Projects, which have some semblance of reality, are generally preferred. Also applications for which one of the team members has some expertise are generally better (eg. one member has worked in a hospital and your team chooses a hospital or clinic database.) A roommate, friend or family member may also serve as the expert.

 

If you are a graduate student doing research, you should consider ways to relate your database project to your research. However, it is not required that your final choice should be related to your research.

 

Turn in a short description of your project. Describe the functions that will be supported by the database. I will then approve of  the application area or make further suggestions, or ask you to choose another project. 

Project Meeting with Instructor

After your project has been approved you should draw an ER diagram to model you application database. At this point you do not have to have all the details in the diagram, but it should include all of the entities and relationships. Turn in the diagram and schedule a meeting of your team with the instructor.

 

Important Note: Data modeling is a valuable experience. Therefore, you should include as many of the entities and relationships as you can. If the model is too complex, then you will not have to implement all of it.

Create your tables

Create your database tables and populate them with data. Create appropriate constraints and indexes. At a later time you will develop a user interface to add, modify and delete data in some of the tables. At the early stage you should put data in all of the tables. This may be done by using SQL*Loader, using insert statements, or by an interface you design. You must use SQL*Loader on at least some of the data. It will be helpful if you can automate the population of tables, since you may have to start over more times than you imagine.

Develop appropriate queries and views to support your functions.

Create appropriate queries and views. Place these in a file or files so you can reproduce them at any time. 

Develop stored procedures, functions and triggers to support your database.

 Your project must have stored procedures and triggers. Each team member must have a significant amount of work on this part.

Develop a user interface.

 Your user interface is used to retrieve, add, modify and delete data. You are not required to have a user interface for every function. For example, you might enter your company name, or even the departments without using a GUI.

 

General Project Philosophy

 

Project Ideas

The emphasis is on

 

          The database – as opposed to being user friendly

 

          Learning – as opposed to complete polished project

 

          Web interface

 

          Good software engineering practices are encouraged, but the emphasis is on the three items above.

 

Chose an application. It is best if you have access to an application “expert”

 

Draw an “ER” diagram and list the functions of your database

 

          Example –school database

 

                   Produce class rolls, drop add students, schedule a course for a room, produce student schedule. You don’t have to list obvious cases like add, delete modify student.

 

Your ER diagram might also include parking, athletics, business office functions etc. The actual implementation might include just the academic side. 

                  

 

Schedule a meeting with me. (Bring your ER diagram and function list)

 

At project completions you should demonstrate the project to me and turn in

 

          A machine-readable version of the project

 

          ER diagram

 

          List of who did what on the team signed by each team member

 

          A confidential evaluation form grading yourself and each member of your team

 

          Representative printouts of tables, queries, programs, reports etc.

 

          A one page description of the project and how to run it. (Just how to start it, not a users manual).

 

You are not required to have

 

          Extensive documentation

 

          Large amounts of data in tables

 

          Large number of columns in tables

 

 

Important. The emphasis should be on the database. A poor database design is cause for a low grade on the project, even if the user interface is spectacular. Also, the emphasis is on learning. I would rather have an incomplete project, which explored many different aspects of the subject, rather than a complete project where the same features were implemented many times.