Group Project
Your group has been hired to construct a database to assist the operators of a small business. You are to analyze the description and produce a database to perform this task.
Teams:
Alpha | Beta | Gamma | Delta | Epsilon |
Robert Bragg | Brandon Clements | Zachary Demmel | Travis Hamilton | Charles Panighetti |
Majid Djellouli | Michael Coghill | Jordan Gardecki | Nicholas Huff | Devesh Shukla |
Asith Fernando | Deven Gibson | Joshua Genis | Ryan Key | Joshua Szall |
Jason Klins | Nicole Sickafoose | Joshua Huson | Matthew Olson | Tessa Williams |
| Todd Tirums | Travis Mink | Nicholas Renner | Edward Zinz |
Phase 1
You should begin by identifying the entities and attributes. Identify the relationships between identities and specify the cardinalities of each. Construct a Crow's Foot diagram to represent this work.
Phase 2
Prepare for an interview with the owner of the company by producing a documented list of questions to confirm your work, or to remove ambiguities found during phase 1. Once this is complete, schedule and conduct an interview with the owner (your instructor). The list of questions, as well as the result of the interview should be placed in the final report and clearly labeled. Please submit the questions to the owner when scheduling your interview.
Using the new information, please modify/update the ER diagram produced previously. Both versions of the ER diagram should be placed in the final report. make sure that each is clearly labeled.
Phase 3
From the revised ER diagram, produce a complete data base design. Each table should be in BCNF or better. If a decision is made not to normalize a table, document the justification for this decision. For each table, document the schema, keys, constraints. Write a brief description for the contents of the table.
Phase 4
From the previous database design, construct a database. This should be accomplished through a series of scripts. You should construct example data to populate your database. Document your scripts, including author, date created and a revision log. Your final database must include at least one trigger and custom views for at least five of the sample query transactions.
You should implement at least one program in C/C++ which can accomplish the following tasks (You can write a single monolithic program or several programs)
- Perform at least five additional queries, not performed in the previous section.
- Allow a staff member to schedule lesson for a student with an instructor.
- Allow an instructor to record the results of a driving lesson.
- Allow an instructor to record the results of a driving test.
- Allow a senior instructor to add a new instructor to a local office.
All programs should be well written and well documented. They should be modular. The documentation should include a history of changes and track the author of the changes.
Phase 5
You should produce two final reports. The first should be to the owner of the company describing, to a non-programmer. This report should describe the database and the interface (limited) that you have provided. It should also summarize the systems used and provide an estimate of the number of man-hours required to complete the project. It should include a description of the team and the rolls each team member performed in the production of the final database. Finally, your report should include a list of known bugs and deficiencies.
Appended to this report should be a user manual, software design documents (described above) and database documentation. It should also include a hard copy of all code and scripts used to produce the database and examples of the data in each table. This report should be produced by the group.
The second report should be produced by each individual and submitted separately. This report should include experiences related to the project, personal observations and difficulties encountered.
Points
- Design through first stage of ER diagram: 15 points.
- Questions and interview: 10 points.
- Final ER diagram: 10 points.
- Database design: 15 points
- Database implementation: 10 points
- C/C++ program interface: 10 points
- Database Documentation: 15 points.
- Final Report 10 points.
- Instructor Discretion 5 points.
Final Submission
All documents are due Friday May 10 at class time. No late work will be accepted on this project. Your group document should be placed in a three ring binder, with a table of contents and tabs dividing each section. Your personal report may be handed in as a stapled document.
The final database should be constructed in the team's database space on MySQL on CSCI313Lin.
A tar file of all code, including a Makefile, should be submitted to danbennett360@gmail.com by class time on that date. All programs should compile on CSCI313Lin.