ObjectivesAn understanding of - Persistence concepts and mechanisms
- SQL
- Database access layers
- Object-relational mappings
- Object-oriented databases
- NoSQL databases
- Unit and integration testing in the presence of persistent data sources
Your JobIn 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 RequirementsThe 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
|