Iteration 0


  1. Entry Video

    • During your first meeting with your customer, you and the customer should talk through the customer’s basic problem. After doing so, record a short (~2min video) in which the customer describes:
      1. What their problem is

      2. What they are looking for your team to implement as a solution

    • Post the video to Youtube, and make sure that the customer is okay with making the video public. If not, share with video with
    • Examples of entry videos from previous customers are here.
  2. Project Setup
    • Rails App Setup
      • Setup a dummy rails app according to Appendix A (section A.9) in the textbook.
      • If you have a legacy project, please fork the original GitHub repo.
      • Otherwise, in the spirit of convention-over-configuration, take a few minutes to choose a concise and descriptive name that will serve as the name of the Rails app, GitHub repo, Pivotal Tracker project, and so on, that meets the usual punctuation rules for names of apps and repos. 
      • Add your GSI as an observer to your GitHub repo. See course info page for GSI's usernames.
      • Some useful links for getting started with Code Climate and Travis CI (after you create your GitHub repo):
      • Deploy the app to Heroku
        • Always deploy to your own Heroku instance.
    • Pivotal Tracker project
      • All team members create Pivotal Tracker accounts (activate your 30-day free trial - afterwards, it will still remain free).
      • For your Pivotal Tracker to remain free, you will need to make your project "public". You will find this setting on the "Project Settings" page.
      • One member creates a new project matching the name of the app. Alternatively, if you have a legacy project, you can also use the existing Tracker project.
      • Add all teammates as collaborators. Also add your GSI and the professor as collaborators. As long as your project is public, you should be able to have an unlimited number of collaborators.
    • Screencast showing successful development environment
      • After project setup, every team member clones the repo and record a screencast of their development environment showing the results of running rake features and rake spec on the app. (You may have to use bundle exec rake features and bundle exec rake spec for Cloud9)
        • Note: Some of you working on legacy projects might have previously written tests that aren't passing currently. You don't have to fix them in iteration 0.
      • Please make sure you introduce yourself in the screencast so we can give everyone credit!
      • Upload the screencasts to YouTube.
  3. Add entry video and screencast links to repo
    1. Inside the root directory of your app, create a folder called 'iterations' and put a file called '' inside of it.
    2. Inside that file, paste YouTube links to your entry video and screencasts. Please label what links point to what for ease of grading.

Submission Checklist:

To get full credit for iteration 0, the following must be completed. (We recommend you check these off in order, since some of the higher-numbered depend on the lower-numbered ones working.)
  1. Project is checked in to a public GitHub repo 
  2. All team members have been added as collaborators on GitHub repo
  3. All team members can successfully clone the repo and run the project in their development environment (we recommend Cloud9)
  4. rake spec and rake features run without errors (even if there are no actual tests yet)
  5. The project repo is successfully integrated with Travis CI, meaning that Travis CI reports "Build: passing" 
    • Note: If you're working on a legacy project which has previously written tests that aren't passing currently, then "Build: passing" is not required for iteration 0. However, it is highly recommended to start fixing failing tests early.
  6. The project repo is successfully integrated with CodeClimate
  7. A public Pivotal Tracker project (new or existing) has been setup for the project, with all team members added as collaborators
  8. A file called LICENSE in the repo clearly indicates the terms under which others may use this software. We strongly suggest the BSD License, MIT License,or one of the Creative Commons licenses. The goal is for both the customer and future CS169 teams to be able to continue working on the codebase.
  9. The at the top level of the repo includes all of the following:
    • CodeClimate badge showing project's current GPA
    • Code Climate badge showing percent code coverage
    • Travis CI badge showing build status for master branch (should be "passing")
    • Link to deployed app on Heroku
    • Link to Pivotal Tracker project
    • A brief explanation of the customer's business need that the app addresses, including a link to the customer's website
  10. Initial customer meeting has taken place, with 2-minute filmed interview summarizing results
  11. Screencast of each member showing successful development environment
How to Submit:
  1. After you've committed the contents listed above, tag that commit with 'iter0' and push to your GitHub repo
    • The command git tag iter0 will tag the latest commit with 'iter0'
    • When you push to GitHub, make sure you use the --tags flag to ensure your tags get pushed as well
      • i.e. git push origin master --tags
    • If you've successfully pushed your tagged commit, you will see the tagged commit show up in the 'Releases' tab of your GitHub repo (example). This is the commit that we will be grading.
  2. Submit the link to your GitHub repo using the form posted on Piazza