Phase 3d

Due Date: see roadmap


An understanding of

Your Job

In this final phase, you will develop a persistent version of your phase 3c of the project. Persistence means that the application data must be stored persistently/externally in the file system or in a database and will continue to be available after the application or the application server is stopped and restarted.

Nonfunctional Requirements

The nonfunctional requirements from all prior phases still apply. In addition, the following nonfunctional requirements apply:
  • Data persistence must be provided using one of the following choices. Extra credit is given for supporting two or more choices of persistence provider add-on supported by Heroku.
    • ScalaQuery (encouraged) with a relational database
    • MongoDB/Play plugin for MongoDB
    • other choices by instructor approval
  • Unit and integration testing must be provided as follows:
    • the third "hike" article serves as a "roadmap" (available on Blackboard)
    • LinearRegression/test serves as a blueprint, a Play-based example will be available soon
    • unit testing of domain objects using specs2 (reusing the test cases from phase 3a)
    • integration testing of service and repository components using specs2