In this phase we will continue our project to develop a foundation for the Creamery system. In this phase, we will focus our efforts on building out the models for the three entities given to you in the first ERD and adding all necessary business logic. In addition, you will have to write unit tests for all models. This phase will constitute 10% of your final course grade and is broken down into the following three components:
-
Creation of Models: Models for the entities listed in the first ERD below and handed out in class need to be created. Below you are given a spec sheet to essential methods each model must have; those methods have to be fully implemented. The project must be using Rails 5.2.3 and Ruby 2.5.x (expect a very substantial penalty is you use a different version of Rails).
-
Unit Testing: Unit tests for all methods in all models must be written and fully passing. We will check to make sure there is 100 percent code coverage for unit tests using the simplecov
gem used in class and in lab. Because simplecov does suffer from some false positives (as mentioned in class) we may spot check tests to make sure certain tests were included. Only the models in this phase need complete coverage. There are steep penalties for less than 100 percent coverage and no credit at all for less than 90 percent coverage.
-
Coding Style: All code must be appropriately organized. What that means at this stage is the following: Related or similar functionality is grouped or clustered together. Indentation should be used consistently to make code readable. Comments showing organization should be present and explaining difficult code should be used when/if necessary.
Your project will be turned in via canvas -- at 11:59pm on Sunday, March 10, 2020. The solution for this phase will be released on the next day -- no late assignments will be accepted after solutions are released.
Again, if you have questions regarding the turn-in of this project or problems downloading any of the materials below, please post them on Piazza or ask someone well in advance of the turn-in date. Waiting until the day before it is due to get help is unwise -- you risk not getting a timely response that close to the deadline and will not be given an extension because of such an error.
Additional Information and Supporting Materials:
ERD for Phase 2
Model Specifications for Phase 2
Database Design for Phase 2
Data Dictionary for Phase 2