- Encrypt method successfully implemented
- Decrypt method successfully implemented
- Encrypt method command line interface successfully implemented
- Decrypt method command line interface successfully implemented
- Project is broken down into logical components that are appropriately encapsulated
- No classes are unreasonably small or large
- No classes contain knowledge/information/behavior that they shouldn't know about
- Student can articulate the single responsibilities of the various components
- Code is mostly properly spaced and indented
- HoundCI?
- Code lines are not excessively long
- Class method, variable, and file names follow convention
- Some enumerables/data structures chosen are the most efficient tool for a given job
- Student can speak to why the enumerables/data structures were chosen
- At least on hash is implemented in a way that makes logical sense
- Every method is tested at both unit and integration level
- Every method is test to completely verify expected behavior (i.e. if a single method does 3 things, all 3 things are explicitly tested)
- Obvious edge cases are addressed
- Git history demonstrated students are writing test before implementation code
- Test coverage metrics show coverage at 99% of greater
-
Minimum of 30 commits
-
Uses a pull request workflow that includes related and logical functionality.
- I following pull request workflow including related and logical functionality by: branching, feature naming of branches, TDD commits, committing at logical intervals, merging after completion of feature completion, solving functionality or written conflicts, and checking out new branch, writing templates in pull request and commenting/asking for feedback, not deleting branches to show history of development.