GoalReacher Goal Management App
Abstract
Since the popularization of short form videos, it has become more and more clear that there are many distractions that waste our time through the day. This affects how much time and effort we put into our goals daily, making it harder to finish goals consistently or finish them at all.
GoalReacher offers the solution for tracking and making sure we are “on track” with our goals. It provides a dashboard for us to monitor the progress of our goals and upcoming deadlines. It also comes with customizable goal creation, create ease for users to create goals and track it however they want to. You can also break a goal into smaller tasks, and set them to contribute to your goal’s progress. Additionally, you can also set alerts to tell you when your deadline is near, or one will be set automatically for you. GoalReacher main task will always be to assist you in completing your goal, and will better itself in the future for you to use.
Author
Name: Huu Phuc An Tran
Student number: 48309255
Functionality
Features
Login/Sign up
- New users can sign up using email and password, the email will be verified through a link (sent to the registered email).After that, user can log in using the registered email and password. For easier log in options, user can sign up/log in using their Google, Facebook or other integrated accounts.
- For security, password encryption, multi-factor authentication(MFA) can be used.
- For password recovery, user can request a one-time use link sent to their registered email to start the password recovering protocol.
Profile
- User can set up a personal profile to make full use of the app to their own goals and preferences
- The user can customize their profile, this includes name, profile picture, preferred notification types, and even their email and password
- Password and Email change would have the same steps as a password recovery
Dashboard
- The dashboard provides an overview of the user’s ongoing goals, tasks, and progress.
- Features that can be viewed on the dash board:
task completions rates
daily/weekly streaks showing how consistent the user has been
progress bar for each goal to show how close the user is to completion(scrollable)
reminder of upcoming tasks
- The user can choose what to show on their dashboard and move each positions on the screen to their preferences
Set/modify a goal
- user can set specific, measurable and time-bound goals.
- A goal would contains the following details:
Name, description, due date
Priority(low, medium,high)
tasks/subtasks that contribute to that goal
Optional: goal category(could be health/career/education/personal development)
- User can edit their goals to their liking (update deadlines, change priority, delete goal, etc. )
Set/modify actionable tasks to their respective goals
User can break down their goals into smaller tasks/subtasks to make their progress more achievable
- A task/subtask would contains the following details:
Name, description, due date
Priority(low, medium, high)
The progress they contribute in their goal
smaller subtask
- User can mark a test completed / in progress / starting and the app will automatically update the progress to their goal
Task reminder/notification
- User can set reminders or notifications for each task to ensure timely completion
- A reminder can be one-time or recurring for each tasks
- A notification can be via in-app, email, or from push notifications
- An automatic reminder for tasks and goal would be generated 1 day before the deadline
Potential flows
- Sign up for new users: First, the user signs up. Then, they verified their email. After that, they fill out their information. Once that is finished, they are directed to the dashboard, completing the process.
- Add new goal: The user signs in and goes through two-factor verification. After verification, they will find themselves at the dashboard. After they click the “add goal” on the dashboard, a form will appear. Then, they add the goal’s details and then include tasks for the goal. Once all the details are submitted, the process is complete.
- Change password: The user signs in and completes two-factor verification. They then find themselves at the dashboard and click on their profile. From there, they choose to change their password. Verification is done via email, and the user fills in the new password, completing the process.
- Task management: After signing in and completing two-factor verification, the user accesses the dashboard. They then select an existing goal and choose the task associated with that goal. The user then sets the details for that task. After details are submitted, the process is completed.
- Set reminder/notification: The user signs in and completes two-factor verification. They then access the dashboard and choose to set a reminder or notification. After setting and submitting the details the process is complete.
Scope
User Account
- Basic user account system
- Users are able to sign up/log in using email or their existing Google/Facebook/etc. accounts through a single-page web application
- One-time use links are used to verify emails
Dashboard:
- Display in-app reminders along with current goals and their progress bar
Set/modify goals
- User can specify the details of the goal and it will be updated in the dashboard
Set/modify task
- User can specify the details of the task and it will be added to the goal, the implement of subtasks are not necessary for this MVP
Reminder/Notification
- User can set when and how the reminder/notification of each goals/tasks alerts them
Security
- Users are able to use two-factor authentication
Quality Attributes
Reliability
Reliability ensures the app functions correctly and consistently. It ensures all the progress are always up-to-date and any reminders/notification will always show up on time. Reliability is an important attribute in this system for any error such as failing to issue a notification would cause the user plan to go off track and the purpose of the app would not be fulfilled. Users should be able to use the app without any concern whether the app would miss an alert or display the wrong progress of a goal.
Extensibility
Extensibility refers to the ability to adapt and expand the system as user needs evolve. The application should be built with extensibility in mind, which allow new features, such as advance analytics or AI-driven manager for the goals, to be integrated without disrupting the existing functionality. Extensibility is important due to the purpose of the app being a goal manager, meaning constant development of features that assist the user to achieve their goal should be updated with ease. If the app fails to deliver what users need to achieve their goals, it means the app has failed its purposed.
Usability
Usability focuses on creating an intuitive and user-friendly experience. The app should prioritize ease of navigation, ensuring that users can create goals, break them into tasks, and track its progress with ease. The reason usability is crucial is if users struggle with complex or unintuitive features, they are more likely to abandon the app. A focus on usability ensures that goal-setting remains enjoyable and a motivating experience rather than a frustrating one.
Evaluation
Reliability
To evaluate reliability, we first conduct basic system tests to ensure the system can function correctly under low-stress environments. Then, load testing to simulate high traffic and usage scenarios(ideally 10 times of the expected usual number of users) to ensure the application remains stable under peak demand. Additionally, every time a new feature is deployed, tests should be done again to ensure the new feature does not create reliability issues.
Extensibility
Extensibility would be assessed based on the ease with which new features can be added. This means ensuring new components can be integrated in the codebase without significant changes to existing functionality. This could be done through feedback from the developers to ensure the system is ready for additional features. The same applies for the architecture of the system, to be easy for new features to be included in the scope, a newly added component should not change how old component appears to users, this could be done through user testings.
Usability
Usability will be evaluate through user testing and feedback. Key metrics like goal progress and tasks status should be as clear as possible to users. For further improvement of usability, survey or interview can be conducted to gain users insight of the current design and improve its quality.