ud175 »

Prototyping Project

TODO List for Android


Anything marked as a Project is required and graded, and is meant to be completed in groups, which we will assign.  To find the due date and see where this fits in the course overall, see the schedule.


  • Build an Android application for managing TODO lists.
  • Get familiar with software prototyping.


  1. A TODO list consists of tasks that the users need to accomplish. The application must be capable of adding items to, deleting items from, and editing items in a list.
  2. Users must be able to add tasks to a list by specifying the tasks' name, priority, and due date.
  3. There should be a default value for priority and due date, so that users won't have to necessarily specify them.
  4. TODO lists must be saved automatically and immediately after they are modified.
  5. Users must be able to check off items in a list (without deleting them).
  6. Users must be able to hide or show checked-off items.
  7. The application must support multiple users, each one with their own list.
  8. The User Interface (UI) must be intuitive and responsive.


  • The team groupings for the project will be sent out on Piazza.
  • The teams are also on GitHub; we have assigned a repository per team.
  • UI design and understanding of the requirements are critical; use prototyping to make sure that you are developing what your customers want.
  • The customers will provide feedback for your prototypes — please incorporate this feedback into your later iterations.
  • For the documents, you can use the same templates that we provided for Project 1.  See the project page for reference info on the documents.
  • Be realistic in planning; it is OK to list some of the requirements as optional if you think you will not be able to satisfy them.
  • But feel free to be creative and to extend the functionality of the application if you think you can afford it. Creativity will be suitable rewarded.


  • All deliverables except the code must be uploaded to the GitHub repository for the project, in a subdirectory called "Deliverables". (See the class slides for details about how to access your repository.) Create a separate directory for each deliverable:
    • Deliverables/Deliverable1
    • ...
    • Deliverables/Deliverable4
  • The code must also be uploaded to the repository, but as a regular Android project in the root of the module, that is, at the same level as "Deliverables".
  • The prototype(s) can be developed any way you want (Drawing, interactive GUI, Flash, actual Android interface, ...). The more effective the prototype, the better feedback you will receive. An important decision your team will have to make upfront is whether to use throw-away or evolutionary prototyping.  You can find some suggestions for prototyping tools here.
  • VERY IMPORTANT: After completing each deliverable by pushing your changes to GitHub, a member of your team should go to the appropriate quiz (listed below under each deliverable) and paste the result of the command command "git show". We will use this information to identify your submissions in the repositories.

Deliverables and dates

Deliverable 1:

  • Prototype
  • Process plan
  • Requirements document

Submit here, then wait for feedback before moving on.

Deliverable 2:

  • Revised/extended prototype
  • Revised process plan
  • Revised requirements document
  • Acceptance test plan (without results)
  • Design document

Submit here.  After this deliverable you can continue without waiting to hear back.

Deliverable 3:

  • Alpha/beta release (source code)
  • Acceptance test plan (with results)

Submit here.  After this deliverable you can continue without waiting to hear back.

Deliverable 4:

  • Final release (source code)
  • Revised acceptance test plan (with results)
  • User Documentation
  • Process assessment document

Submit here.  After this deliverable you can continue without waiting to hear back.