# M2: Project Proposal

A project proposal is a high-level description of your project. It should detail what you intend to build. We usually do this up-front to ensure that everyone is on the same page 1. It's also a great way to get initial feedback before you have invested too much time in the project.

# What to include

This document should be a Wiki page in your project named Project Proposal. You should include the following sections:

# 1. Purpose

What is the purpose of your project? What problem are you solving, and for what users? Think of this as an "elevator pitch" - a paragraph that defines your project goals.

e.g., "We are building a software application that will allow parakeets to order takeout from their cages.".

# 2. Background

Describe your users, what they need, and what problems exist that you are trying to address for them. Provide a one persona for a typical user2.

e.g., "Polly the parakeet is a typical parrot who can get peckish. Parakeets are always hungry, but they are often caged and can't just go for takeout whenever they want".

# 3. Requirements

What are the features that you plan to deliver, to solve this problem? If you identified any User Stories as part of defining your project, you can include them in this section.

Minimally, list 5-10 features that serve as the core of your project, and that you expect to implement. Make sure to consider the core project requirements, since you need to address them as well.

  • You should create these features as issues under Issues > List. They should be unassigned, and listed as "No milestone," since you haven't scheduled them yet.

e.g., "This needs to be a phone app. We'll need to support a stylus because she has claws. The parakeet can use it to pull up her favorite recipes on the main menu, and then click a button to order. We'll send the order through the Uber Eats server. Somehow. We also need to figure out how to get her to enter a password."

# Where to store this document

Your proposal should be contained in a Wiki page titled Project Proposal, and linked from the README.md file of your GitLab project.

# How to submit


  1. You'd be amazed how many projects fall apart because there wasn't a common understanding of what the team was actually building. The more you discuss this now, the less likely you are to have problems later.

  2. You can either use our template, or another one that you find online.