ud805 » ud805 » project »

Software Development Life Cycles

Final Project: Decision Maker App

Remember that time you weren’t feeling well and used the WebMD Symptom Checker to diagnose your sickness? Or the time you used a Facebook Quiz to identify what character in Friends you are? Or How Y’all, Youse, and You Guys Talk, powered by the New York Times, that attempts to guess where you are from based upon how you speak.

All of these are examples of decision assistance applications!

For the final project of this course, you will build an Android application that helps users make decisions based on information they provide.

You have as much creative liberty as you would like with this project — you could build an app that determines where you should vacation, what FIFA team you most closely associate with or even how compatible you are with your favorite movie star.

You will have five deliverables for this project: Project Proposal, Requirements Document, Design Document, Test Plan, Final Release & User Documentation. Your coach will be working closely with you to provide feedback throughout this project.

While it is up to you how your app will function, what it looks like and what unique features it will include, we advise that you submit one deliverable at a time to ensure that the development is in line with course expectations. You are free to work on the next deliverable while one is being graded, but do keep in mind that if the previous submission does not meet specifications your coach’s expectations, you may have to iterate on it.

Ready to get started?


This project will be spread across the entirety of this course. At appropriate points in the lessons, you will be prompted to work on the following deliverables. You do not have to complete them after viewing the relevant course material, although it is strongly recommended you do.

Each deliverable will be submitted to your coach via GitHub or email. Be sure to notify your coach when you complete a deliverable.


  • The application must run on an Android device.
  • JUnit tests must be written to test much of the logic of the app. JUnit tests do not need to test the UI functionality of the app.
  • The entire app must be pushed to a repository so that your coach may pull it and run it on an Android device or emulator without any modifications or additions. Please make sure that your app is compatible with any of the last four Android SDK versions. Information on SDK revisions could be found here.

Your repository must contain all the libraries and any dependencies necessary to run the application.



Each deliverable will be submitted to a Udacity Coach via a Git Repository. You can find the templates for each of the deliverables below. Upload them to your GitHub account and complete them.

1) Project Proposal:

  • Email your coach describing your idea in less than 400 words
  • Proposal should include scope of the app and a preliminary outline on how it will function

See an Example of a Project Proposal.

2) Requirements Engineering:

  • Watch videos in P1L1 through P2L2
  • Requirements document (.md template)

3) Design your App:

  • Watch videos in P2L2 through P3L3
  • Design document (.md template) - remember to look back at P3L3 (A Tale of Analysis and Design) to see a sample UML Diagram!

4) Create a Test Plan:

  • Watch videos in P3L4 through P4L5
  • Test Plan (.md template)

5) Implement your App:

  • Final release (source code)
  • User Documentation (create a README.md file)

6) (Optional) List it on Google Play:

Launch your App on Google Play! Here’s their Launch Checklist. Let us know if you do this, we’d love to feature some of our favorite published apps!

Instructions on How to Submit the Deliverables:

When you feel ready to submit the project and have checked your work against the rubric, create your own Git repository. If you use a free GitHub repository, it will be public, so if you prefer to keep your work private, you can use BitBucket, but in that case, make sure to share your repo with our account .

You should keep your documents in a separate folder from your source code.  For each submission, you should create a branch with the state of your documents/code at that point.  If you need images/other supporting files, please put them in subfolders labeled appropriately.

Finally, email the following 3 items to sdlc-projects@udacity.com. :

  1. Link to your repository.

  2. List of Web sites, books, forums, blog posts, github repositories etc that you referred to or used in this submission (Add N/A if you did not use such resources).

  3. Please carefully read the following statement and include it in your email: “I hereby confirm that this submission is my work. I have cited above the origins of any parts of the submission that were taken from Websites, books, forums, blog posts, github repositories, etc. By including this in my email, I understand that I will be expected to explain my work in a video call with a Udacity coach before I can receive my verified certificate.”