Sprint Release

At the end of each sprint, you should have a completed prototype of your software, implementing all the features you committed to during the sprint. Moreover, those features should be documented and tested (preferably by automated testing tools with full unit and integration tests).

You will need to:

  1. Commit all your changes to your repository
  2. Create a release tag for the sprint
  3. Upload your release URL.

Your software will be graded according to the following rubric:

Code Quality (20 points)

Does the code compile and run? Does it suffer from unhandled errors? Does it perform as described in the user documentation?

Coding Style (10 points)

Is there a consistent and understandable coding style employed throughout the code base? Are variable names consistent and descriptive of their roles? Is indentation used consistently to delineate nested code bodies?

In-Code Documentation (10 points)

Does the code include a detailed inline documentation description of each class, method, and function at their point of declaration? Is an auto-document style used for inline comments? Are non-obvious sections of code commented with a description of their purpose? Is the documentation legible, grammatically correct, and profanity free?

Licensing (5 points)

Does each file begin with a comment stating copyright and license information? Is the full text of the license included with the project code?

Developer Documentation (15 points)

Is the documentation sufficient to orient a new programmer to the codebase and describe where the important aspects of the code are located? Does the programmer documentation include diagrams of the code structures and how they interact (i.e. class diagrams, database diagrams, use-case diagrams) where appropriate? Does the documentation describe how to set up the development and deployment environments? Is the documentation legible, grammatically correct, and profanity free?

Test Suite (20 points)

Does the release include an appropriate test suite that performs unit and integration tests on the existing code base? Do all tests pass? If an automated test suite is not possible, does the release include a written test plan and documentation of its outcome for the release?