-
Notifications
You must be signed in to change notification settings - Fork 0
Home
This is the project for CMPUT 301 F21 Team 08. The habit tracker app can let users to record their habits and help them keep track of these habits. It can prompt the user when to finish a habit and record the completion level of each habit. Users in this app can also add each other as friends. Friends can see the tracked habits of each other and the completion level of these habits as well. More functions are coming up!
Here are some important definition for this app.
- Habit: an object represents a habit that user want to track. It has a title, a reason, and a date to start. The app will notify the user to complete certain habits when reaching their occurrence time.
- Habit Event: an object represents an event of completing a habit on time, like a moment post. A habit event needs to be related to a certain habit (because it is only created when the user finishes a habit on time). However, it can solely exist even when the related habit is deleted. This event represent the user has finished a habit on time. In short, habit events are related to habits in some ways, but they are objects denoting different things. A habit event has attributes such as a title, a comment, a photo, and a location.
- Product Backlog: HabitTracker
- User Storyboard: Story Boarding
- User Interface Mockup: UI Mockup
- CRC cards: CRC Cards
You need a UAlberta account to see the following content
- 2021-10-12: part2 summary
- 2021-10-20: Sprint planning and start of first sprint
- 2021-10-25: First sprint summary, start of second sprint
- 2021-10-31: Second sprint summary, re-discuss halfway checkpoint, start of third sprint
- 2021-11-08:Preparation for Project Part 4
- 2021-11-18: Process update on project part 4 (however all team members didn't get much done in this part of time, so we extended the iteration 4 time by 4 days. Not much content was discussed, so no minute for this meeting)
- 2021-11-23: Process update on iteration 4 & test preparation
- 2021-11-28: Final progress update for project part 4, summary of all jobs done
We aim to cover every function except those related to followers at the half-way checkpoint. the detailed list is shown below:
Requirement Index | Description | Story Point |
---|---|---|
US 01.01.01 | Doer add a habit | 1 |
US 01.02.01 | Set an occurring date for habit | 3 |
US 01.03.01 | View a habit and its details | 2 |
US 01.04.01 | Edit the details of a habit | 2 |
US 01.05.01 | Delete a habit [updated] | 2 |
US 01.06.01 | Restriction for the length of habit title and reason | 1 |
US 01.07.01 | See all habits due today | 3 |
US 01.08.01 | See a list of all habits (visual indicator is not covered) | 2 |
US 02.01.01 | Add a habit event | 3 |
US 02.02.01 | Comment for habit event | 1 |
US 02.03.01 | Photo for habit event | 5 |
US 02.04.01 | View the details of a habit event | 2 |
US 02.05.01 | Edit a habit event | 3 |
US 02.06.01 | Delete a habit event | 3 |
US 03.01.01 | User Profile | 8 |
US 03.01.02 | Login function | 8 |
US 03.01.04 | Logout function | 8 |
US 03.02.01 | Edit user profile | 8 |
US 03.01.06 | Sign-up function | 8 |
Total story points to cover: 73
Some problems that needs to be solved later on:
- For choosing the frequency of a habit, we currently only support multiple times per day and per week. We are still working on letting the user to choose multiple date in a month for a habit to occur. This delay is because the calendar view in Android Studio does not support multiple selection, and we have to customize this view to make such a function happens. This is not anticipated in the original planning.
- For a habit that is set to occur multiple times a day, the app now assumes the user checks out the habit from the to-do list once he finishes all required times. In other words, the app does not support counting how many times this user finishes a habit currently. (Currently working on this)
- For selecting location from map, now we only support user search for a location in google API or directly use his current location. Whether to integrate a map into the app is still under discussion.
- In terms of testing, we finished the unit test on the basic object classes: habit, habit event, etc. However, we did run into some difficulties in applying unit testing in all the refactored listeners. The intent testing is still incomplete because most of the members' computer cannot successfully run intent test. So unfortunately the testing for this part will be poor. We will continue to work on this later on.
In this sprint, we focus on the structural implementation of the program. We divided the program into three function sections: login (user profile related), habit, and habit event. We only build the UI part for these three sections and realize the interaction between pages in this sprint. Pages related to "following" is not considered in this sprint.
Summary:
By the end of this sprint, the team did finish most of the required UI pages as planned. Two pages left undone is the main page (to-do list page) and the profile page. We set to finish these pages in the second iteration.
In this sprint, we focus on realizing the actual functions of the three sections of the program within the sections themselves. We do not consider the interaction between functions in this section.
Summary:
By the end of this sprint, we managed to realize most functions for log-in, habits and habit event as separated parts. We will connect these parts together in the third iteration. All habits and habit events are currently stored locally. Some problems left unsolved in this iteration is:
- Enable the user to select multiple dates in a month for a habit to occur is still not possible due to the need of customizing the calendar view.
- We realized that we may not have time to implement the progress bar for each habit in this part. So we decided to complete this requirement after the halfway check-point.
In this sprint, we focus on the interaction between the three functions, and connect them to a whole working project. We would also implement firebase functionalities.
We aim to cover all functionalities function at this checkpoint. The list below shows the functionalities that are not covered in part 3 but is covered here:
Requirement Index | Description | Story Point |
---|---|---|
US 01.01.01 | Doer add a habit [updated] | 1 |
US 01.09.01 | Visual indicator for each habit | 3 |
US 03.01.03 | "Remember Me" function | 34 |
US 03.01.05 | User forgot password | 34 |
US 05.01.01 | Ask to follow another doer [updated] | 13 |
US 05.02.01 | Processing following request [updated] | 13 |
US 05.03.01 | View the habits and visual indicators of a doer that we are following [Updated] | 5 |
US 01.08.02 | Reordering Habits | 13 |
US 06.01.01 | Add location to habit event [updated] | 13 |
US 06.01.02 | Choose location from map | 21 |
US 02.03.02 | Adding a photo via camera | 13 |
Total story points covered in this part: 163
We focus on finishing all remaining requirements (functionalities) in this sprint, that includes all the updated requirements and functions relating to the following area. We also added additional "Remember me" and "Forgot password" functionalities in this sprint.
Summary:
All team members didn't finish the tasks as planned due to the reading week and other exams. So we decided to continue finishing all these functionalities in the fifth sprint.
Continue to finish all functionalities, and start writing tests if possible.
Summary:
We managed to cover all functionalities by the end of this sprint. Some functions still needs correction. We also planned the testing strategies for this app and started writing tests.
This is our final sprint. We focused on writing tests and refining the app, such as improving the UI design, testing the app and solving existing bugs, etc. We also worked on documentations in this sprint.
Summary:
By the end of this sprint, we prepared this app to be ready for final submission.