Skip to content

High Level Analysis

Venkata Karthik Vadlamudi edited this page Sep 30, 2024 · 66 revisions

High-Level Analysis

1. Diagram

High Level Context Diagram

2. User Personas

2.1 User

A User is an individual who utilizes the app to track their fitness progress, set personal goals, and engage with the fitness community. They can monitor their metrics, such as BMI and heart rate, manually enter data, follow workout plans, and participate in forum discussions. Users also have the option to send direct messages to others and interact with posts, offering a personalized fitness journey.

  • Users can measure their workouts and see detailed graphs about their fitness.
  • Set goals for their workouts.
  • Direct message other users.
  • Can react / comment on other people’s milestones and forum posts.

2.2 Fitness Trainer

A Fitness Trainer is a special type of user approved by admins, with the ability to create and share general or personalized workout plans and dietary programs. In addition to everything a regular user can do, fitness trainers can request access to specific user data for tailored coaching and provide professional advice to clients. They play a key role in helping users achieve their fitness goals.

  • Special type of users which are approved by admins.
  • Can post general workout plans or dietary programs both for the general public and tailored to a specific user.
  • Everything a regular user can do.

2.3 Admin

An Admin has full control over the app's user data and system configurations. They manage the verification of fitness trainers, oversee forum content, and take administrative actions such as banning, muting, or warning users. Admins ensure that the community adheres to the app's rules while maintaining the quality of personal trainers and the safety of the forums.

  • Administrative actions against other users such as deleting a post, banning a user.
  • Verify users to become personal trainers.
  • Everything a fitness trainer can do.

3. Epics

3.1 Epic 1: Login & User Registration - User, Fitness Trainer, Admin

  • As a user, I want to be able to create an account by signing up with a unique username and a valid password so that I can come back to the app recurrently.
  • As a user / FT / Admin, I want to be able to login with my username and password so that I can access all features on the app.
  • As a user / FT / Admin, I want to be able to get a login error if I am trying to login with an incorrect username/password so that I am aware that I am inputting the wrong credentials.
  • As a user / FT / Admin, I want to be able to reset my password via email so that I can re-login to my account. (Tentative).

3.2 Epic 2: Link and Delink Google Fitbit Device - User, Fitness Trainer, Admin

  • As a user / FT / Admin, I want to be able to link my Fitbit device with Google Authentication so that I can get real time health data
  • As a user / FT / Admin, I want to be able to delink my device so that I can choose to stop sending my health data to the application

3.3 Epic 3: View Metrics & Workouts - User, Fitness Trainer, Admin

  • As a user / FT / Admin, I want to be able to view my BMI, Heart rate, and daily steps so I can track my progress.
  • As a user / FT / Admin, I want to be able to view my sleep score (calculated from my sleep patterns) so I can improve my sleep.
  • As a user / FT / Admin, I want to be able to generate and view personalized workout plans (based on my health data) so I can improve my fitness.
  • As a user / FT / Admin, I want to be able to delete old, and/or regenerate new, workout plans so I can keep the exercise plans updated.

3.4 Epic 4: Edit Profile & Set Goals - User, Fitness Trainer, Admin

  • As a user / FT / Admin, I want to be able to view/edit my account profile so that I can see my personal details at one place and keep it up to date.
  • As a user / FT, I want to be able to deactivate my account so that I can choose to stop sending my health data to the application.
  • As a user / FT / Admin, I want to be able to set, view and track personal fitness goals (based on my metrics and workout recommendations), so that I can be motivated to workout.
  • As a user / FT / Admin, I want to be able to edit or delete, my personal fitness goals, so that I can adapt to new workout plans.

3.5 Epic 5: Enter Data Manually - User, Fitness Trainer, Admin

  • As a user / FT / Admin, I want to be able to manually enter my health metrics (such as weight, calories, burned, steps, and heart rate) so that I can keep track of my progress.
  • As a user / FT / Admin, I want to be able to select the date for which the data applies so that I can accurately log past data.
  • As a user / FT / Admin, I want to be able to edit or delete manually entered data so that I can make adjustment when I make a mistake.
  • As a fitness trainer, I want to be able to enter workout results for my clients so that I can keep track of their progress (Tentative).

3.6 Epic 6: Forum Interaction - User, Fitness Trainer, Admin

  • As a user / FT / Admin, I want to be able to post questions or share my experiences in a fitness forum so that I can connect with others and get advice.
  • As a user / FT / Admin, I want to be able to interact with other forum users by liking, commenting on, and sharing posts so that I can engage with the community.

3.7 Epic 7 Direct Messaging - User, Fitness Trainer, Admin

  • As a user / FT / Admin, I want to be able to send and receive direct messages with other users and fitness trainers so that I can privately discuss my fitness journey or get personalized advice.
  • As a user / FT / Admin, I want to be able to create group chats with any other user so that I can create groups with similar interests or have group chats with people I am familiar with.

3.8 Epic 8: Apply to be a Fitness Trainer - User

  • As a user, I want to be able to apply to be a fitness trainer on the application so that I can access features only available to fitness trainers.
  • As an Admin, I want to be able to view the list of Fitness Trainer Applications so that I can accept or reject each one individually.

3.9 Epic 9: View User Info [After Request] - Fitness Trainer

  • As a fitness trainer, I want to be able to request to view a specific user's information so that I can see their data and aid in creating a custom workout plan.
  • As a user, I want to be able to provide access to my health data to a fitness trainer so that I can receive a personalized regimen tailored to my goals.

3.10 Epic 10: Create Workout Plans - Fitness Trainer

  • As a fitness trainer, I want to be able to access user health data (heart rate, steps, BMI) so that I can create personalized workout plans when they request one.
  • As a fitness trainer, I want to be able to design workout plans so that I can share workout plans to all users.
  • As a fitness trainer, I want to be able to create dietary programs so that I can share workout plans to all users (tentative).

3.11 Epic 11: Forum Moderation - Admin

  • As an Admin, I want to be able to review inappropriate or harmful forum posts so that I can remove them.
  • As an Admin, I want to be able to oversee all forum content so that I can ensure compliance with rules.

3.12 Epic 12: Accept / Reject Fitness Trainer Applications - Admin

  • As an Admin, I want to be able to view a list of Fitness Trainer Applications so that I can arbitrate them for credibility
  • As an Admin, I want to be able to accept or deny Fitness Trainer Applications so that I can ensure accepted Fitness Trainers are of high quality
  • As an Admin, I want to provide a reason for rejection so that the user is aware of the reason their application was rejected (Tentative).
  • As a User, I want to be able to see a rejection reason for the application so that I am informed why my application was rejected (Tentative)

3.13 Epic 13: Manage Users [Ban, Mute, Warn] - Admin

  • As an Admin, I want to be able to ban a user from the forums so that they can no longer come back on their account.
  • As an Admin, I want to be able to mute a user from the forums so that they are prevented from commenting on the forums.
  • As an Admin, I want to be able to warn a user for violating the rules of forums so that they are aware they broke compliance rules.
  • As a User, I want to be able to see why action was taken against me so that I am informed of the reason action was taken against me.