CMPUT 301

Software Engineering

2021 F Project Problem Description

You are to design and implement a simple, attractive, and easy-to-use Android application to satisfy the follow goals. Your design must be flexible enough to allow developers to extend or migrate it.

To assist in forming good habits, we want a mobile application that allows one to track, encourage, and share their habits. Recurring habits could be, for example, "write a joke", "eat breakfast", "exercise dog", "call family", and "no car accident". The intent is to make such habits: regular (e.g., daily), unbroken (so missed habit events are noted), and shared (so there's public pressure not to miss).

Needs in (Partial) User Story Form

User needs are expressed in the form of partial user stories: As a , I want .

These descriptions may change to correct omissions and clarify noticed issues. Talk to the customer and propose options, rather than making what might be an unwarranted assumption or interpretation.

Habits

US 01.01.01 [updated] As a doer, I want to add a habit, giving it a brief title, reason, date to start, and whether it is public or private.

US 01.02.01 As a doer, I want a habit to have a plan for what days of the week it should regularly occur.

US 01.03.01 As a doer, I want to view a given habit and its details.

US 01.04.01 As a doer, I want to edit the details of a habit of mine.

US 01.05.01 [updated] As a doer, I want to delete a habit of mine, and any corresponding habit events.

US 01.06.01 As a doer, I want a habit title to be up to 20 characters and habit reason to be up to 30 characters.

US 01.07.01 As a doer, I want to see what habits I need to do today.

US 01.08.01 As a doer, I want to see a list of all my habits.

US 01.08.02 [new] As a doer, I want to manually reorder habits on my list of habits.

US 01.09.01 As a doer, I want for each habit on the list, a visual indicator to show how closely I am following its plan over time.

Habit Events

US 02.01.01 As a doer, I want to denote a habit event when I have done a habit as planned.

US 02.02.01 As a doer, I want a habit event to have an optional comment of up to 20 characters.

US 02.03.01 As a doer, I want a habit event to have an optional photograph to record what happened.

US 02.03.02 [new] As a doer, I want the photograph for a habit event to be taken with the camera within the app.

US 02.04.01 As a doer, I want to view a given habit event and all its available details.

US 02.05.01 As a doer, I want to edit the details of a habit event of mine.

US 02.06.01 As a doer, I want to delete a habit event of mine.

Profile

US 03.01.01 As a doer, I want to be uniquely identifiable in the system.

Habit Following and Sharing

US 05.01.01 [updated] As a doer, I want to ask another doer to follow all their public habits.

US 05.02.01 [updated] As a doer, I want to grant or deny another doer permission to follow all my public habits.

US 05.03.01 [updated] As a doer, I want to view the public habits and visual indicators of the other doers I am granted to follow.

Geolocation and Maps

US 06.01.01 [updated] As a doer, I want a habit event to have an optional location to record where it happened.

US 06.01.02 [new] As a doer, I want the location for a habit event to be specified using a map within the app, with the current phone position as the default location.