Project Proposal

  • Goal: Choose a project, and identify high-level project objectives.
  • Due: Typically the end of week 3. See the schedule.
  • Assessment: The guidelines below are meant to explain in detail what we want from the proposal. The rubric for grading it is listed in the Assessment section.

In the first few weeks, you and your team will choose a project, define requirements, and discuss design issues.

You should create a Wiki page in your GitLab project named Project Proposal, and link to it from the landing page of your project site (i.e. the top-level README file at the top of your project). This page should contain the following details, either on a single page, or multiple pages linked together.

(a) Project Plan

As discussed in the Planning slides, you should identify and detail:

  • Goals: What high-level project goals do you have?
  • Resources: How is your project staffed? Do you have any constraints on people’s time and availability?
  • Risks: What project risks can you identify? How will you mitigate these?
  • Milestones: Identify your sprints and deadlines (dates provided on the schedule), and a high-level plan of what to focus on for each sprint.

(b) Requirements

As discusssed in the Requirements slides, you should detail:

  • Problem: One or two-sentence summary of your project idea. What problem are you attempting to solve?
  • Users: The specific group of users that would be interested in your project
    • Interview at least 2 people in that group, and summarize their feedback in your requirements.
    • (Optional) Include a role-based or goal-based persona suitable for your project.
  • Functional Requirements: What features are you considering?
    • List your “top-ten” requirements: what features do you think are critical? This list doesn’t need to be comprehensive but should call out features that are core to your project.
    • Describe in a document but also link to your issues list in GitLab (i.e. Product Backlog of unassigned issues).

(c) Design

As discussed in the Architecture and Design slides, you should detail:

  • System Diagram: A box-and-lines diagram that shows the architecture of your application (aka architectural style).
  • Non-Functional Requirements: If applicable to your project, list any non-functional requirements (system qualities related to performance, or other factors). Most projects in this course will not have these, unless specifically identified by a user during interviews.

We will grade content in your GitLab project directly. Please ensure that:

  • you previously emailed the instructor your project URL when you formed your project team,
  • instructors and TAs have permission to access your project, and
  • everything is completed (documented in your project Wiki) by the deadline.