Project 3.1: Design Document for a GUI Program

Due Wed 5/27 @ 10:45am. Please work on this project in a group of three or four.

Project 3 Overview

For Project 3, you and your team will develop a GUI application using Java and JavaFX. The key areas of attention for this project will be:

The schedule for this project is pretty compressed; you really only have two weeks to complete it. You should spend the first half of 9th week designing, the second half writing your tests and preliminary implementation, the first half of tenth week getting feedback, and then the last days of the term finalizing your project. There are only three phases:

Let me reiterate: you've only got two weeks! So aim for a project that you can complete in the time that you have. It's way better to write a finished and polished version of a small thing to have a half-broken version of something big and ambitious. The grading will reflect this perspective.

Choosing a Project

Almost any GUI program can be organized successfully around MVC. However, one of my main goals for this project is to give you a non-trivial experience with MVC. With that in mind (but also remembering the deadline of June 8th), I want your program to have a Model that is at least complex enough to warrant at least two distinct major features in the View.

One way to start thinking about your idea's Model is to ask a couple questions: “What are the main things in my program that could be made into Java classes or interfaces, and then aggregated in my Model?” Or alternatively, “Of what information does the current state of my program consist while it's running?”

You're free to build whatever kind of desktop GUI application you'd like, so long as it meets the expectations of sophistication and organization laid out here. On a separate page, I have some examples of programs that might fit the bill, along with descriptions of how to think about their Models and Views.

Design Document

Create a PDF similar to the one that your created for Project 2 in Phase 2 and Phase 4. Your design document should include the following:

Turn It In

Make a repository for your group to share, and share it with me and the graders.

Push your PDF (and the source document for it, particularly if you write it using LaTeX) to your repository, tagging your commit with phase_3_1.