# Project Proposal

A project proposal is a high-level description of your project. It should detail what you intend to build and how you intend to build it. 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.

# Contents

Your proposal will be stored in a Wiki page in your GitLab project. It should have the following sections.

# Team structure

You should clearly define your team members and their roles in the project, and set expectations for how the team will work together.

  • Who are the members of this team? Include primary contact info.
  • How will you communicate? Slack? Discord? Email? Choose something that works for everyone.
  • Who is your project lead? This person is not necessarily the person who does the most work, but they are the person who is responsible for ensuring that the project is completed on time.
  • What are the roles of each team member? Typical roles include: project lead, designer, front-end developer, back-end developer. Think about how you want to divide the work; each person should have an area of responsibility.
  • How often will you meet? You are required to meet in-class at least once per week, but you should meet more often than that (and meeting outside of class is acceptable).
  • How will you make decisions? Major decisions should be made by the team as a whole. In cases where the team cannot agree on a solution, the project lead should make the final decision.

# Project details

Describe what it is that you're trying to build in more detail. You need to include:

  • A description of your project. What are you building? ("We are building a software application that will allow parakeets to order takeout from their cages.")
  • A definition of your user. Who are you designing this software for? Provide at least one persona for a typical user2. ("Polly the parakeet is a typical parrot who can get peckish.")
  • A definition of the problem that you are trying to address? ("Parakeets are always hungry, but they are often caged and can't just go for takeout").
  • A description of how your product works. ("This is a phone app that comes with a stylus. 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.")
  • A list of the 5-10 essential features that you MUST implement for this project to work, with links to corresponding GitLab issues. (e.g., "We have to figure out how to get facial recognition working for birds.")

# 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.

Content should be divided into Team structure and Project details sections, and include the information described above.

# How to submit in Learn


  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.