Assignment 7 - Software

This is the final project for the course. You will deliver a functioning proof of concept.

Initial Requirements

  1. Code
    • All code should be easily accessible in repos under the DCSIL organization
    • All repos should be linked to your team in the Learn Software App (Add a new repo here.)
    • All of your repos have been added to Code Climate. Your repo should maintain a minimum “B” average in “maintainability”.
      • This isn’t the best metric to ensure code quality, and in practice, you would use this to help inform a decision, not make a decision. In this case, checking a grade is a simple way for the teaching staff to gauge code quality without spending hours reviewing each repository.
  2. It is required that the software be easily accessible:
    • If it is a web app, we should be able to visit a URL. Provide the teaching staff credentials with which to log in, if necessary
    • If it is a desktop app, we should be able to install it with the Mac/Windows Installer. We can support Mac and Windows applications, Linux-only applications will not be accepted.
    • If it is a mobile app, we should be able to install it with an iOS/Android installer. We can support iOS and Android to mark, there is a doc that can help here. Note: iOS can be a pain to deploy, as you need a certificate. Please record a video of the app in use if you do not have a certificate to available.
    • If your app, or part of your software, does not fit in one of the above categories, then please speak with the instructor before submission
    • If your app is not easily accessible, then you will receive a 0% for the evaluation of the running software
  3. There should be tests. The tests should be sufficiently covering your code.
    • You must implement code coverage on your app and run it in CI.
    • You must upload to Code Climate as well. See the linked doc for log in details.
    • You must implement the code coverage uploading and code coverage in your CI.
  4. There must be CI, Production, Exception Logging, and any requirements from previous assignments.
  5. The application(s) is/are mostly dynamic. An MVP has been delivered and the main functionality has been entirely implemented. Very little is static (other than docs, and other content that needs to be static).
  6. A demo video is provided to tell the teaching staff about the main flows of the app. Guide us in testing the apps out and seeing the amazing work you’ve done.
  7. The application looks good and has a coherent layout and adheres to at least the WCAG 2.0 checklist Level A in this link.
    • Use this checklist to help you make sure you adhere to all requirements. It is also required
  8. A short video (~1.5 to 3 min) with a short write up (some bullet points explaining the video) has been provided that indicates the flows that have been implemented.
    • The short write up should be adequately long enough to tell us what to expect and highlight what you think is important. It should be short and concise enough that we’re not bored reading it or lose understanding. (Tell a good story). Feel free to include images (and flow charts!!) if you feel they will help.
    • The write up should be a markdown file in the repository or the body of the release. If it is a markdown file include the path in the release body - While the video doesn’t require audio, I should be able to watch and follow along on the video so audio or text overlays are a must.

Dynamic Marking Guidelines that the teaching staff uses are also provided on the assignment page in the LearnSoftware application for reference. The teaching staff’s judgement is absolute, however, and these guidelines are only for reference.


You must also create a release on your repo where the code is located.

This will give us a snapshot in time and allow us to grade it. See release body criteria and example below. Assignments without a coherent release body that follow the instructions in this assignment will be rejected and marked 1 day late.

The release does not need to include pull requests or commits from every member. The body does not even need any content, just ensure it is there and appropriately labelled.

Assignments are always due at 11:59:59pm Eastern Time.

You must submit the release on the LearnSoftware application. You can find the submission location here:

Release Body

Release bodies must include:

Example release body demonstrating the written instructions

Questions or Concerns?


[Product] Applications, Use Cases, and Dynamic ContentAll applications present in the architecture diagram have a repository and an MVP is implemented.
The product coherently functions (buttons do as expected, a user could reasonably answer questions they want to answer using the app) and achieves the intended goal.
All main use cases/flows have been delivered and are functional.
The majority of the content is functional and dynamic. The app(s) do not rely on hard-coded static data.
Login credentials or registration system provided. Details listed in the release.
[Product] Design & AccessibilityThe application has a consistent look and feel. You didn’t rely on default styles (see below). The flows are not incoherent. This will be a highly subjective area, so feel free to ask for advice before submission (please don’t ask the day before, or day of, submission). Checklist for accessiblity is filled out and submitted in the team repo10.0
[Infrastructure] Test CoverageTests should cover at least 65% of your application and upload to Code Climate.15.0
[Infrastructure] Code QualityAll repositories have at least a “B” Grade on Code Climate.10.0
[Infrastructure] Operational ExcellenceCI, Exceptions, Logging, and all other services listed in the requirements & service.yml example are all setup. Bootstrap script works. Service.yml is uploaded with no errors in the Learn Software App.5.0
[Assignment Meta] VideoA short video (~1.5 to 3 min) with a short write up (some bullet points explaining the video) has been provided that indicates the flows that have been implemented. This allows the teaching staff to mark and is often highly valued in a production company. Please note any areas which are still under development, or not fully implemented. Keep in mind the majority of the paths should be implemented.5.0
Participation & Teamwork (Individual Grade)Effectively worked as a team member and shared equitable work load during this assignment.
Communication was regular and effective & acted in accordance with team principles.


Things you’ll lose marks on

Rating Scale

This scale is used for each line of the rubric above.

Outstanding, Thoughtful and thorough100% of pts
Strong, Provides some thought80% of pts
Acceptable, Simple explanation60% of pts
Insufficient, Little effort was made to give explanations40% of pts
Unacceptable, No effort was made or the section was missing0% of pts