Group Project (see Phase 0)
Phase 0 due 30 Jan
Group formation and Linux account verification
Phase 1 due 6 Feb
Software installation and development environment setup
Phase 2a due 20 Feb
Preliminary requirements analysis and domain model
Phase 2b due 5 Mar
XHTML-based mock UI with automated testing
Phase 3a due 26 March (preliminary), 2 Apr (final)
Non-persistent implementation of domain layer
Phase 3b due 9 Apr
Dynamic model using state transition diagrams
Phase 3c due 25 Apr
Addition of web-based user interface using the Play framework
Phase 3d presentation 2 May, final submission due 4 May
Persistent version using MongoDB with integration testing
Each phase comes with its own due date and set of deliverables constituting a project milestone. However, as a team, you should not limit yourselves to a strictly sequential work schedule: It may be beneficial to get started on the next phase while finishing up the current phase, and you may divide up the resulting tasks among the team members.
here is intended as an example. You are welcome to follow this description, but you are encouraged to choose some other project of similar technical depth that your group is eager to pursue. If you choose that route, please discuss your choice with me after submitting a high-level proposal at a similar level of detail and conciseness as this description. The alternate proposal must have similar characteristics as this one (multiple user roles, persistent data, etc.), follow the similar nonfunctional requirements, and proceed in the same phases (see above).
If your proposal is approved, you will be required to give a 25-minute in-class team presentation toward the end of the term to describe the various parts of your technology stack, compare it with our original stack, discuss any specific challenges, and share any other insights you had.
A useful resource for making this decision is Matt Raible's blog article Choosing a JVM Web Framework, as well as his presentation Comparing Web Frameworks, which includes marketability of skills, job count/trends, etc., as well as this more recent post. Another important consideration is that you will be much more on your own if you get stuck after choosing an alternate stack.
Rough idea: two-tier application
Same due dates as last phase of main project.