Delivered 1 - JeroZp/Habitools GitHub Wiki

Deliverable 1: Project definition and Software Requirements Specification

Habitools

Tomas Jaramillo

Jeronimo Perez Baquero

Moisés Arrieta

  1. Introduction 1.1 Purpose 1.2 Scope 1.3 Product Overview 1.3.1 Product perspective 1.3.2 Product funtions 1.3.3 User characteristics 1.3.4 Limitation 1.4 Definitions
  2. References
  3. Specific requirements 3.1 External Interfaces 3.2 Funtions 3.3 Usability Requirements 3.4 Performance Requirements 3.5 Logical database Requirements 3.6 Design contraints
  4. Video
  5. Project management

1.0. Introduction

1.1. Purpose

The following project is the realization of a software that allows users to have a healthier life by means of objectives, in this work we will expose both the functional and non-functional requirements that we need in the elaboration of it. The goal of creating the software is to help people achieve their goals through positive habits that motivate them and help them achieve those goals.

1.2. Scope

Habitools will be a web app where people can manage their goals through healthy habits, considering the classification of their respective goals which will be based on the book "Atomic Habits" and David Allen's two-minute rule. This app is designed to benefit companies to generate and strengthen the habits of workers and obtain greater productivity. The app will have user registration and account creation, you can also see the progress monitoring of your habits offering statistics and visual graphs, it will also have a system of notifications and reminders personalized by each user.

1.3. Product Overview

1.3.1. Product perspective

Diagrama-en-blanco-1.png

The web app in the private network will be made up of the product's services where the information on the habits of each person will be displayed, the progress record with graphs and statistics such as notifications and reminders. In the support services part, you will have a validation email, as well as a help center for any questions and email support.

For infrastructure services you can see the account creation and user registration, you can also show the graphs of the habits and the records of the goals.

1.3.2. Product functions

The main capabilities of the Habitools app are intended to help users adopt and maintain habits in an easy and intuitive way to achieve their goals, the app will allow users to create personal accounts.

It will provide an interface where users can register and see the progress of the daily habits that they will have, it will also allow users to establish the different specific goals that they want to achieve, it will have a system of notifications and reminders by the user that will help and provide information about their habits.

It will present an intuitive, visually attractive and easy-to-use interface for a better user experience, it will have security and privacy measures to protect user data.

Visual graphs and statistics will be presented showing progress over time and your healthy activities.

Some conditions and restrictions that the app may have been:

Accuracy of the data: the Data of the habits and their registration must be precise for a better user experience.

Compliance with medical regulations: Consider the diseases of the users to carry some habits according to their abilities.

Professional advice: Since habitools is an app dedicated to personal well-being, we have to take into account the advice of experts in this area to carry out the specific habits that the user needs, in this case we are guided by James' book Clear Atomic Habits.

1.3.3. User characteristics

The app will be designed for people who want to improve their habits and achieve their goals, both for people who do not have any experience in health issues or related to habits, such as health professionals.

For people who do not have any knowledge regarding health or have not had positive daily habits, the app is designed to be intuitive and easy to use to be able to carry out these types of habits for the first time.

For people who have knowledge of health issues and good practices, they will be able to access detailed data such as keeping a record of their habits and seeing the progress in graphs and visual statistics to improve their experience and have a vision of how they are doing. with your goals.

1.3.4. Limitations

Some limitations they may have are:

Browser Compatibility: Ensuring that the application works correctly in different browsers and versions can be a limitation.

Accessibility: Ensuring that the app is accessible to users with visual, motor and other disabilities can be challenging.

Regulations and Compliance: As the application handles health data, we may face challenges such as ensuring compliance with health regulations and regulations.

Scalability: If the application gains popularity, we may face scalability challenges in terms of performance, server capacity, and database management.

1.4. Definitions

Accuracy: Complete adjustment or fidelity of a data, calculation, measurement, expression, etc.

Habits: Habitual practice of a person, animal or community.

Interface: Device capable of transforming the signals generated by one device into signals understandable by another.

Productivity: The capacity of nature or industry to produce.

2.0. References

As a reference we are basing ourselves on James Clare's book "Atomic Habits" which presents us with how to transform small daily habits to improve our lifestyle with scientific research.

Our main problem on which we base ourselves to solve it is that many people do not have healthy habits, or it is difficult for them to maintain these habits, be it for reasons of time, money or procarstination. According to the US Centers for Disease Control and Prevention (CDC), approximately 53% of adults worldwide do not meet recommended physical activity guidelines.

Data from the National Sleep Foundation shows that young adults (18-25 years old) need between 7 and 9 hours of sleep per night for optimal well-being. However, many adults do not meet these requirements.

3.0 Specific requirements

1) User Registration: Users should be able to create accounts using their email address and a secure password. The email address must be verified to ensure the authenticity of the account.

2) Goal Setting: Users should be able to define specific goals in categories such as health, productivity, personal skills, etc. Each goal should have a description, deadline and steps to achieve it.

3) Activity Tracking: Users should be able to record daily activities related to their goals, such as exercise, skill practice, habits, etc. They should be able to add details such as duration, frequency and notes.

4) Generation of Reports and Statistics: The application should generate reports and visual statistics that show the user's progress towards their goals over time. Users should be able to view their activity history and see their performance in graphs.

5) Notifications and Reminders: The application should send personalized notifications and reminders to motivate users to perform activities and follow their routines. Users can configure the frequency and type of notifications they want to receive.

6) Community and Achievement Sharing: Users should be able to join groups or communities with similar interests to foster mutual support and collaboration. They should be able to share their achievements and progress on social networks or other platforms.

7) Privacy and Security: Personal data and activity logs should be protected and comply with applicable data privacy regulations. Users should have options to control who can see their information.

8) Plans and Subscriptions: There may be premium subscription options that provide additional features, such as advanced analytics, access to exclusive content, etc.

9) Cross-Platform Access: The application should be accessible through web browsers on desktop and mobile devices.

3.1. External interfaces

The app does not interact with other systems.

3.2. Functions

Some of the functional requirements of habitools are:

1) User Registration: Users must be able to create personal accounts with basic information such as name, email, and password.

2) Login: Users must be able to log into their accounts using their registered credentials.

3) Daily Habit Log: Users should be able to record their daily health-related habits, such as exercise, eating, and sleep.

4) Goal Setting: Users should be able to set specific health-related goals such as losing weight, increasing physical activity, etc.

5) Activity Planning: Users should be able to plan their daily health-related activities, such as exercise, meals, and rest.

6) Custom Reminders: Users should be able to set reminders and notifications for their scheduled activities.

7) Progress Tracking: The app should display graphs and statistics that show users' progress toward their goals.

8) Nutritional Database: Users must be able to search for foods and obtain information about their nutritional values.

9) Suggestions and recommendations: The application could offer suggestions and recommendations based on the user's interests and goals to help them plan and achieve their goals.

10) Community and Collaboration: Users may have the option to join similar interest groups or participate in collaborative challenges, encouraging interaction and mutual support.

11) Achievements and rewards: The app may give virtual achievements and rewards to users when they reach significant milestones or complete objectives.

12) Security and privacy: Ensure the security of user data and provide options to adjust the privacy of shared information.

13) User Friendly Interface: An intuitive and easy to use interface that allows users to navigate the app, set goals and track their progress effectively.

14) Goal Customization: Users should be able to adjust their goals as their progress progresses.

15) Data Export: Users should be able to export their data, such as habit and progress logs, in a reusable format.

16) Achievement Notifications: Users should receive achievement notifications when they reach specific milestones in their objectives.

17) Personalized Advice: The application must offer personalized recommendations based on the records and objectives of each user.

18) Activity Calendar: Users should have access to a calendar that shows their planned activities and previous records.

19) Viewing Trends: Users should be able to see trends over time in their habits and progress.

20) Multilingual Support: The application will offer multi-language support to reach users from different regions.

3.3. Usability requirements

Some usability requirements are:

1)Efficiency in the Record of Habits: Users should be able to record a habit and a goal in the first session in less than 1 minute.

2)Notification Configuration Efficiency: Users should be able to configure a custom notification in less than 20 seconds.

3)Progress Tracking Efficiency: More than 80% of users should be able to interpret their progress towards goals using graphs and statistics.

4)User Interface Satisfaction: At least 85% of users must rate the user interface as "easy to use" in a satisfaction survey.

5)Satisfaction with Tips and Resources: At least 70% of users should find the tips and resources provided by the app useful.

3.4. Performance requirements

Some performance requirements are:

1) Response time: The app must respond to user interactions in a reasonable amount of time, typically less than 2 seconds, to provide a smooth experience.

2) Concurrent User Capacity: The application must be able to handle a load of concurrent users without significantly degrading performance

3) Notification Processing Time: Notifications and reminders must be delivered to users in a timely manner and at the specified time.

4) Fast Page Loading: The main pages of the application, such as the control panel and logs, should load in less than 3 seconds to avoid user frustration.

5) Data Analysis Speed: The application performs analysis and calculations, these processes must be completed in a reasonable amount of time to provide timely results.

3.5. Logical database requirements

1) User Information:

  • Types of information: name, email, password, age, gender, interests.

  • Frequency of use: High, as users will create and update their profiles.

  • Access capabilities: Users must access and edit their own information; administrators can access user information for support.

  • Data entities and relationships: Entity "User" in relation to entities such as "Objectives", "Routines" and "Records".

  • Integrity constraints: emails must be unique; gender data must be predefined options.

2) Target Information:

  • Types of information: goal description, deadline, category (health, skills, etc.).

  • Frequency of use: Moderate, users will set and update their goals occasionally.

  • Access capabilities: Users can create and update their own goals; view goals related to their routines.

  • Data entities and relationships: Entity "Target" related to entity "User".

  • Completeness constraints: Deadline cannot be in the past; category must be from a predefined list.

3) Routine Information:

  • Types of information: routine name, description, days of the week in which it applies.

  • Frequency of use: High, users will create and modify their routines regularly.

  • Access capabilities: Users can create and adjust their own routines; access their existing routines.

  • Data entities and relationships: Entity "Routine" related to entity "User".

  • Integrity constraints: Days of the week must be validly selected.

4) Activity Record Information:

  • Types of information: type of activity, duration, date and time, comments.

  • Frequency of use: High, users will log activities on a regular basis.

  • Access capabilities: Users can log activities and view their history; administrators can access for assistance.

  • Data entities and relationships: Entity "Activity Log" related to entity "User".

  • Completeness constraints: Duration cannot be negative; activity type must be selected from valid options.

5) Progress Tracking Information:

  • Types of information: Progress statistics, progress graphs, unlocked achievements.

  • Frequency of use: Moderate, users will review their progress on a regular basis.

  • Access capabilities: Users can view their own progress and achievements; graphs and statistics are visible.

  • Data entities and relationships: Entity "Progress Tracking" related to entity "User".

  • Completeness constraints: Unlocked achievements must match completed objectives.

3.6. Design constraints

1) The system must comply with data privacy regulations in accordance with the legislation in force in the user's region, ensuring the protection and secure handling of personal information.

2) The application should integrate with the physical activity tracking API provided by third-party vendors, allowing users to automatically record their physical activity data from portable devices.

4.0. Video

https://youtu.be/YR9RjrCNm5k

5.0. Project management

https://github.com/JeroZp/Habitools