Point counts:
- Writeup (15 pts)
- Add photos (10 pts)
- View photos (10 pts)
- Load and save (5 pts)
- Search (5 pts)
- Slide show (10 pts)
- MVC (5 pts)
- Visual appearance and usability (25 pts)
- Implementation (15 pts)
Implementation of extra features or nice visual effects can compensate for point losses in
other areas.
Comments:
MVC
: most people don't completely understand it. It is not pure MVC if:
- You have GUI stuff in your model (
import javax.swing.* is a dead giveaway).
- You make multiple calls to update the model in an event handler. (Since the model calls
notify after each call, things are sure to get out of sync.)
- You update the view directly in the event handler after updating the model. (You just by
passed the whole mechanism.)
- You have event handlers in your view.
- You have model parts in the view. People using
JTree or JList
were often very confused about where to put the list model and the default tree nodes.
Key design decisions:
- Are your albums going to correspond to folders or be virtual.
- How you show album contents and different albums.
- How you are going to manage memory (I didn't take off anything on this issue, but
it is an issue).
- How you are going to save state. (Note, if really using MVC, you can serialize the
workspace to save and restore state. This is distinct from saving individual albums.)