Skip to content

Requirements of the New Project

oguzhekim edited this page Oct 8, 2024 · 13 revisions

Requirements

Table of Contents

Glossary

  1. User: Registered user.
  2. Trainer: A special type of user that creates training programs.
  3. Dietician: A special type of user that creates diet programs.
  4. Trainee: Users that train their bodies
  5. Search Engine: Searching space where users can enter any keywords or attributes related to fitness, and get search results about it.
  6. Labels: Subset of attributes, which will be chosen by the admin.
  7. Cards: Informative post prepared by system using data extracted from, shown as a result of the search.
  8. Posts: Visual or text posts created by registered users. Present in the form of a forum entry or a program
  9. Search Result: The list of cards and posts.
  10. Filtering: Filter search result according to any label available
  11. Program: Diet or training programs that are created by dieticians or trainers respectively.

1 Functional Reqs

1.1 User Reqs

1.1.1 Registration/Login:

  • 1.1.1.1 Guest user shall be able to register with an unique username, a hard password and an unique email.
    • 1.1.1.1.1 Password must contain at least one number, symbol, uppercase and lowercase letter. Password must be at least 8 characters and at most 20 characters long.
    • 1.1.1.1.2 Username shall start with a letter and can contain uppercase, lowercase letters, numbers and underscore and dash. Username shall not end with underscore or dash. Username shall be at least 4 characters long and at most 20 characters long.
  • 1.1.1.2 User shall be able to login with their registered username and password.
  • 1.1.1.3 Logged in users shall be able to logout.
  • 1.1.1.4 User shall be able to change their password with another hard password with given details in 1.1.1.1.1.

1.1.2 Guest User

  • 1.1.2.1 Guest user shall be able to see posts, comments on posts and number of likes for a given post.
  • 1.1.2.2 Guest user shall be able to search with given functionalities in 1.2.2.

1.1.3 Registered User

1.1.3.1 Common Features
  • 1.1.3.1.1 User shall be able to create new posts containing visual, textual, video, and external link with a title.
    • 1.1.3.1.1.1 User shall be able to post their own material with its text, photo, video, or URL. Users shall be able to add labels optionally (in 1.2.3).
    • 1.1.3.1.1.2 User shall be able to edit their own posts.
    • 1.1.3.1.1.3 User shall be able to delete their own posts.
  • 1.1.3.1.2 Users shall be able to view user posts they saved earlier in their own personal pages.
  • 1.1.3.1.3 Users shall be able to create collection of bookmarks for saving the user posts.
1.1.3.2 Trainer
  • 1.1.3.2.1 Trainers shall be able to create training programs for Trainees to join.
  • 1.1.3.2.2 Trainers shall be able to select the program type as group or individual.
  • 1.1.3.2.3 Each program shall include location categorization, such as club, home, and outdoor.
  • 1.1.3.2.4 Users shall be able to see the specific muscles targeted in each program.
1.1.3.3 Trainee
  • 1.1.3.3.1 Trainees shall be able to join training programs created by Trainers.
1.1.3.4 Dietician
  • 1.1.3.4.1 Dieticians shall be able to create diet programs for Trainees to join.

1.1.4 Administrator

  • 1.1.4.1 Administrator shall have access to an admin panel managing users, posts, and other system settings.
  • 1.1.4.1.1 Administrator shall be able to see registered emails of users through the admin panel.
  • 1.1.4.1.2 Administrator shall be able to see number of users, posts, system uptime through admin panel.
  • 1.1.4.1.3 Administrator shall be able to suspend users for any number of days or indefinitely through the admin panel.
  • 1.1.4.1.4 Administrators shall be able to send system-wide notifications to users through the admin panel.
  • 1.1.4.1.5 Administrators shall be able to view user reports through the admin panel.
  • 1.1.4.1.6 Administrators shall be able to remove user bans/blocks through the admin panel.

1.1.5 User Interactions

  • 1.1.5.1 Registered users shall be able to follow and unfollow other registered users.
  • 1.1.5.2 Users shall be able to block or report any disturbing user.
  • 1.1.5.3 User shall be able to comment on posts.
  • 1.1.5.4 User shall be able to like the comments and posts.
  • 1.1.5.5 Users shall be able to save user posts to their personal profiles.

1.1.6 Personal Page

  • 1.1.6.1 Users shall have a personal page that shows their posts, comments they have made on other posts.
  • 1.1.6.2 Trainees shall be able to select specific muscle(s) to work on.
  • 1.1.6.3 Trainees shall be able to see their previous exercises on a graph.
  • 1.1.6.4 Training programs shall be displayed in the profile page of the trainer who created them.
  • 1.1.6.5 Diet programs shall be displayed in the profile page of the dietician who created them.

1.1.7 Leaderboard

  • 1.1.7.1 Each type of users shall be able to see their separate leaderboards based on collected points.
  • 1.1.7.2 Limited with one program per day, trainers and trainees shall be gain streak as they perform training.
  • 1.1.7.3 Daily challenges shall be available to earn additional points.

1.1.8 Program

1.1.8.1 Training Program
  • 1.1.8.1.1 Training programs shall have one of two program types: group or individual.
  • 1.1.8.1.2 Each program shall include location categorization, such as club, home and outdoor.
  • 1.1.8.1.3 The specific muscles targeted in each program shall be visible to viewing users.
  • 1.1.8.1.4 Training programs shall include daily exercise plans.
  • 1.1.8.1.5 Each exercice information shall include reps, sets and weights lifted
1.1.8.2 Diet Program
  • 1.1.8.2.1 Each program shall include diet type categorization, such as low-calorie, low-fat and high-protein.
  • 1.1.8.2.2 Each program shall include daily meal plans.
  • 1.1.8.2.3 Each meal information shall include timing, portion size and alternatives/substitutes for special dietary preferences.

1.1.9 Feed

  • 1.1.9.1 Posts that are created by users shall be visible on the feed by all the users.
  • 1.1.9.2 All users shall be able to sort the posts on the feed based on most-liked and latest.
  • 1.1.9.3 Registered users shall be able to filter posts in the feed to see the posts of the users they follow.

1.2 System Requirements

1.2.1 Notification

  • 1.2.1.1 System shall send notifications to users when someone comments on or likes their posts.
  • 1.2.1.2 System shall send notifications to users when a user starts to follow them.

1.2.2 Search

  • 1.2.2.1 System shall allow users to search for material related to fitness.
    • 1.2.2.1.1 System shall allow searching by name of the exercise type. System shall display the page of the exercise type as a result of this search.
    • 1.2.2.1.2 System shall allow searching by name of the nutrition. System shall display the page of the nutrition as a result of this search.
    • 1.2.2.1.3 System shall allow searching by name of the muscle. System shall display the list of the visual and/or textual information related to that muscle as a result of this search.
  • 1.2.2.2 System shall allow users to filter their search results.
    • 1.2.2.2.1 Filters shall include nutrition, trainers, muscles, exercise types, exercise difficulty and labels described in 1.2.3.1.

1.2.3 Labels

  • 1.2.3.1 System shall have labels for posts and linked data cards available in search engines for filtering operations on search.
    • 1.2.3.1.1 Labels shall include types of muscles, muscle injuries, exercise types and nutritions including supplementary material.

1.2.4 Verification

  • 1.2.4.1 Post labels such as cardio, powerlifting, and fat loss shall be provided by the system.
  • 1.2.4.2 System shall provide a survey to program suggestions categorized as newbie, intermediate, and advanced.
  • 1.2.4.3 The platform shall be displaying daily challenges for trainees to gain extra points.
  • 1.2.4.4 Transformation, form check and PR sub-forums shall be available for all types of registered users.

2 Non-Functional reqs

2.1 Performance

  • 2.1.1 The system shall respond to any kind of requests within 100 milliseconds.

  • 2.1.2 The system shall support up to 1000 requests per second.

  • 2.1.3 The shall be running at least for a week without any downtime.

2.2 Accessibility/Availability

  • 2.2.1 The system shall be available as a website via any web browser.

  • 2.2.2 The system shall be a mobile application on Android platforms

2.3 Privacy

  • 2.3.1 The restrictions imposed by KVKK shall be strictly followed.

  • 2.3.2 The copyright of visual content shall be protected if it exists.

  • 2.3.3 Open source acceptance before posting user's own material (REVIEW).

  • 2.3.4 The information of any user shall be unavailable to anyone except the Admins.

2.4 UI/UX (usability)

  • 2.4.1 All content shall be seen in English

  • 2.4.2 Using the program shall be not difficult for everyone

Clone this wiki locally