Skip to content

SRS Documentation

sarah-a-king edited this page May 12, 2022 · 7 revisions

Introduction:

Training Buddy has the vision of connecting like-minded individuals with similar training interests and allowing them the opportunity to organise workouts together. Users will create a personalized profile that illustrates their training interests through activity statistics added to their profile (i.e. the experience level of the activities they partake in). Users will be able to find and connect with other users by filtered searches on attributes such as location and activity types. Users can make a buddy connection request to connect with a user with whom they would be interested in training. The system will allow users to schedule workouts and invite their “buddies” to join these workouts. On completion of a workout, all users who participated in the workout will be able to enrich their profile by logging the data from said workout.

Vision and objectives:

The system will be able to utilize user metrics and data to enrich their profile and provide useful buddy suggestions for them. It aims to provide a fun, social and usable platform for all levels of users. The system also aims to provide a means for users to organise and schedule their group workouts and keep track of their training logs. Training Buddy will priorities creating an enjoyable, welcoming and non-toxic exercise environment.

Business need for application:

Social media’s influence on society is constantly and exponentially growing. There are so many new ways to connect with and meet new people and this definitely should not be limited when it comes to training. Exercise is about more than just data and results, it can serve as a vital aid to one's mental wellbeing and social life; and Training Buddy aims to push this effect.

Scope for the project:

Following the above analysis, we can define the overall goals of the project as follows:

Allow users to create and enrich their personalised training profile. Allow users to easily find and form meaningful Training Buddy Connections (and communicate easily and safely) Allow users to organise and schedule group workouts Allow users to track their progress with the app by logging and reviewing their completed workouts (perhaps also by adding fun elements such as leaderboards and badges)

These goals outline our project's scope which will be worked towards using the Agile Software Engineering methodology, while sticking to well-planned and executed deadlines according to the assigned demo dates. More details on the requirements and design of our project scope are found further along in this SRS document.

Class Diagram:

Screenshot 2022-04-21 at 12 47 23

User Characteristics:

Educational Level & Technical Skills

Users should be literate and be 18 years or older to use the app. However, its interface should promote ease of use as users are not expected to have a high level of technological ability in order to use the system.

Experience

As stated above, the app should make allowances for users who do not have a huge amount of experience with technology as this is not an expected characteristic of a Training Buddy user. It should make use of extensive engagement with the user and error checking to allow for a smoother user experience.

Expertise

Users may very well be avid exercise enthusiasts or simply looking for somewhere to start. Either way, Training Buddy should provide a platform to cater for both sides of this spectrum and prove useful to any prospective user looking to line up with its objectives.

Functional Requirements:

Use Cases

Screenshot 2022-04-21 at 12 47 23

Requirements:

Core Requirements:

  • A user must create a verified user profile.
  • A user must be able to select from multiple supported activities.
  • A user must be able to add and review activity-related statistics to find a suitable training buddy.
  • A user must be able to search and filter users based on statistics, activities, location, etc.
  • A user must be able to connect with other users and group connections into activity pools relating to their activity interest.
  • A user must be able to accept or reject another user’s connection request.
  • A user must be able to post to their connections when they want to work out, specify the activity details and allow a user to accept/reject an invitation.

Optional Requirements:

  • A user may view an explore page that recommends users to connect with that are generated by a content-based filter recommendation system. This may be implemented using data filtering or a Machine Learning technique such as decision trees.
  • A user may have the ability to give a training buddy’s profile a star or score to indicate trustworthiness after a workout together.
  • A user may upload and view GPX files for certain types of activities.
  • Users may participate in leaderboards with their connections.
  • A user may receive push notifications for various events.
  • The system may provide a secure chat service to communicate with other users.
  • Link external fitness applications such as Strava, Garmin, etc.
  • A user may be able to post activity logs on their profile, either private or public.

Subsystems:

  • Login & Sign up (authentication)
  • Activities
  • Connections
  • Workouts
  • Explore, search and filter

Quality Requirements:

  • Portability: The system must be available on mobile devices and web browsers
  • Modifiability: The system must be able to be modified when new changes are introduced.
  • Security: The system must be secure and only allow verified users to use the service. Each user’s information such as the user’s profile, sports information, and the user’s statistics should be protected from any form of security attack.
  • Testability: The system must be testable in order for vulnerabilities and faults to be detected.
  • Usability: The system should be easy for users to become familiar with, without any form of user training.

Trace-ability Matrix:

Requirements

  • R01 - A user must create a verified user profile.
  • R02 - A user must be able to select from multiple supported activities.
  • R03 - A user must be able to add and review activity-related statistics to find a suitable training buddy
  • R04 - A user must be able to search and filter users based on statistics, activities, location, etc.
  • R05 - A user must be able to connect with other users and group connections into activity pools relating to their activity interest.
  • R06 - A user must be able to accept or reject another user’s connection request.
  • R07 - A user must be able to post to their connections when they want to work out, specify the activity details and allow a user to accept/reject an invitation.

Use-Cases

  • UC1 - Sign Up on the system
  • UC2 - Log into the system
  • UC3 - Add activities
  • UC4 - Explore, Search and filter users
  • UC5 - Request connection
  • UC6 - Accept/Reject Request
  • UC7 - Invite to workout
  • UC8 - Rate/Review user
Screenshot 2022-04-21 at 12 47 23