Due Date: see roadmap
An understanding of
For this phase, your job is to develop your domain model and service layer in freestanding form, that is, in absence of the layers above or below. You should distinguish between entities, value objects, and aggregates. In addition, you should use services to provide functionality that cuts across domain objects, repositories for managing collections of domain objects, and factories for encapsulating the creation of objects. Use the Scala Cake idiom to manage dependencies among components. Your repository implementations should be in-memory (non-persistent).
These functional requirements apply, but you should leave out authentication in this phase. We will add when we develop the web interface.
Testing should be included as follows:
Your submission for this phase will include a doc folder with a brief description (200-300 words, about one page of plain text or Markdown) of your team's experience with this project phase. In particular, you should discuss these questions:
Include any other observations you consider noteworthy.
The LinearRegressionDomainOnlyMaven project in the repository serves as a Java example for this phase. This is a stripped-down version containing only the domain model and service layer, as well as the DAO interface. (The DAO roughly corresponds to a repository in DDD terminology.) An equivalent Scala-based example will be available shortly.