Unfortunately, I was unable to tackle the cracking method due to time constraints. I will likely work on this at some point during the next week as a personal challenge. I was able to successfully emplement all of the required functionality. Therefore, I would give this category a 3.
All classes are under 80 lines, and only one method contains more than 8 lines. Class methods are used in several situations. Since not all requirements were met to recieve a 4, I would give this category a strong 3.
Probably my greatest area of improvement. All methods that do not rely on the command line are covered; however, mocks and stubs were not used. I also could have done a better job writing tests for random values. The vast majority of tests were written before implementation code. I would give this a 3 since all methods are covered, but I realize this probably won't cut it in the future.
This is probably the area I improved upon the most while working on this project. I now have a better understanding of when to use branches and pull requests in an individual project. Virtually all commits cover a very specific change. Since there were well over 100 commits, and 15 pull requests, I would give this area a 4.