Homework 3


Homework 3 will be used to launch the semester project. Over the course of Week 6 and Week 7, your team needs to come together and respond to the constraints laid out in the semester project overview. Furthermore, your team must also work to produce an initial prototype of the project submission page. This is the page within the application that allows faculty members to submit information about a project.

Getting Started

  • 1. Your first task is to finalize the members of your team and to come up with a team name. Teams should consist of three to five students. If you want to form a team of two students, then contact Prof. Anderson for permission. When the team has been finalized, head over to the GitHub repo and add your information to the Team Information page. If you need help joining a team, please use the issue that was created on the class GitHub repo for that purpose.
  • 2. Your second task is to create an empty GitHub repo and add your team members and Prof. Anderson (kenbod) as collaborators.
  • 3. Your third task is to create a space where your team can track user stories and tasks during an iteration. I recommend using Trello for this but you can make use of any software that performs this type of tracking (such as Pivotal Tracker). Invite Prof. Anderson to be a collaborator on this system via the following e-mail address: kena@cs.colorado.edu.
  • 4. Your fourth task is to generate as many user stories as you can for this project. Even though you'll be focusing on implementing the project submission page this iteration, you should generate user stories for the entire project. Remember that user stories are distinct from implementation tasks. You want each user story to be a short description of functionality that would be valuable to one of the users of the system (student, faculty, CEAS staff, admin). You will decompose a user story into implementation tasks when you actually start to work on a user story. This work for this task is performed in the system you selected in step 3.
  • 5. Your fifth task is to figure out how you will deploy your software system. The semester project overview makes some suggestions as to how to accomplish this. You may have others. If you hit on a solution that you think would be useful to the class in general, please share it with me and I will push it out to the rest of the class.

    The goal of this task is to force you to deal with issues of deployment up front. For instance, over the course of the next two weeks, start with a simple web form that contains a single input field and a submit button and work to get the following things to be true:

    1. have the form deployed such that it is available on a publically accessible URL
    2. have a server process of some sort running waiting to accept form submissions
    3. have the server process generate some form of output after processing the form submission

    These three steps will ensure that you have the basics of a web application in place and that you can deploy your system at the end of each iteration. Note: there are Web frameworks out there that are designed to make this process straightforward to manage: Sinatra, Flask, Ruby on Rails, Django, etc. You may decide to use one of these frameworks to get you started in iteration 1 and then migrate to a different one at a later date. That is perfectly fine. Our goal this iteration is not so much the functionality of your prototype but getting your deployment process sorted out early!

    Once you have a basic web form in place, you can then modify it to contain the fields that will be necessary for a complete project submission page (see below).

    Note: once you do have a URL in place, please update the Team Information page so that Prof. Anderson can find your prototype on-line.

  • 6. Once your deployment process has been determined, use the remainder of your iteration to work on generating the project submision page. To do this, you will identify which user stories are related to this page and move them to a column in your tracking software that is dedicated to tracking work in Iteration 1. For each of those stories, you will generate a set of tasks that the members of your team should use to drive the implementation forward. These tasks could cover work in creating a database, getting it integrated in with your web framework, creating CSS that styles your web form, generating the fields needed for the form, and generating the view that will display the results of a form submission.

    The work you attempt to tackle is up to you as long as you have some form of the project submission page up and running by the end of this iteration.


The first iteration is due by Friday, October 7th. By that time, you should have completed your tasks above. Prof. Anderson will review your user stories and your prototype and provide feedback.

© University of Colorado, Boulder 2016