Final Group Project
Objective
To gain experience working on a collaborative software project.
Task
For this project, you and your teammates will decide what sort of project you wish to work on. There are some requirements your project must fulfill:
- The program must have a graphical user interface.
- It must read and write information from/to files.
- It must be reasonably complex. This is somewhat difficult to quantify, but the program should not be trivial in nature.
Proposal (Due April 8)
You will write a proposal containing the following information:
- The name of the project.
- The goal of the project — what problem it aims to solve.
- A list of features your program will contain. You should include brief descriptions of roughly how each one will work.
Your proposal should be around one page long, going into sufficient detail that I get a good sense of what your program will look like.
I will give you feedback on your proposal. I will tell you if your proposal is too ambitious and give advice on scaling it back, or that your proposal is too simplistic and suggest ways of expanding it.
Design (Due April 14)
You will turn in a UML class diagram showing your proposed solution. It should include at least three classes, their instance variables and methods, and the relationships between the classes.
Remember that each class should only have one major responsibility in the system.
I will give feedback on your design.
Project Solution and Demo (Due April 24)
Finally, you will turn in the working code for your project. When submitting project, you will turn in the link to your public project on Github. You do not need to add me as a collaborator.
You will also give a short demonstration of your project on the final day of class. You should show the class how the project works, and do not need slides or anything. You will have around ten minutes.
Groups
- Ossien Asiedu, Mustafa Haider, Abdulaziz Heji
- Isabel Bougher, Dana Soriano, Aiden Thompson
- Robert Burton, Hannah Lydell, Seth Traub
- Henton Guilfoyle, John McCloskey, Timothy Moore
- Emily Halferty, Tori Jackson, Ram Rivas
- Saad Abbasi, Ian Grabowski, James Milligan, Luke Wade
- Joel Adu, Brandon Beiler, Charlton Infinger, Chase Sullivan-faust
General Coding Guidelines
When writing your program, also be sure to:
- Put each class/enum in its own file.
- Always use capital letters to begin a class or enum name, and lower-case letters to begin method and variable names.
- Your code should include comments — at least one for each class explaining its purpose, and one for each method explaining what its job is.
- All instance variables should be private.
- Your code should be consistently indented.
- Your program should not crash with an exception under any scenario.