Skip to content

SRS_Demo3

Shuaib Nuruddin edited this page Jul 31, 2023 · 4 revisions

SweatSession


Introduction

The purpose of SweatSession is to develop a social, location-based mobile app that will enable users to schedule workout sessions with their friends, track their progress, view their friends' personal bests, and earn rewards for achieving their fitness goals. The app aims to provide a platform that will make it easy for users to connect with workout partners, track their progress, and earn rewards. By incorporating social and gamification elements such as leader boards amongst friends, the app hopes to encourage users to adopt a healthy and active lifestyle. The app will have many subsystems that will be integrated to provide its functionality. A non-exhaustive list of such subsystems will be the location-based element so that users can schedule workouts together, the social element to add friends as well as view their workout plans, personal bests, etc., a leader board element amongst friends based on workout times and more. The project presents many design elements that will have to be catered for such as a robust and scalable backend to accommodate multiple users, designing an intuitive and aesthetic design to ensure that users continue to use the app, location-based services and more.

This wiki will include cover multiple areas of documentation such as the functional requirements and use case diagrams.


Functional Requirements

The functional requirements of SweatSession are listed as follows:

Social features:

  • Users should be able to add friends
  • Friends should be able to schedule workouts together
  • Friends should be able to view each other's schedules

Location features:

  • Users should be able to select which gym they plan to workout at
  • Users should be able to see when are where their friends are planning to workout

Workout Tracking features:

  • Users should be able to track their progress
  • Users should be able to set goals
  • Users should be able to view personal bests

Reward system features:

  • Users should be awarded badges/points for milestones like achieving a personal best, completing a workout schedule, number of workout sessions, etc.

Leaderboard features:

  • There should be a leaderboard that contains user's points from the reward system allowing users to compete and see each other's progress

Profile features:

  • Users should be able to set information on their profile such as their bio.
  • Users' profiles should contain their workout plan, schedule and personal information.

Chatbot features:

  • A chatbot should be integrated so that users can ask about topics such as meal plans, workouts, nutrition, etc.
  • The chatbot should make use of an API such as OpenAI.

Notifications features:

  • Users should be notified if a friend is joining them at the gym
  • Users should be notified of their gym progress
  • Users should be notified of any significant or relevant updates.

User Stories

Friends

As a user, I want to be able to add friends on the app, So that I can connect with them and see their activities.

Notifications

As a user, I want to receive notifications for relevant events such as friend requests, So that I can stay updated with important activities on the app.

Workout Tracking

As a user, I want to create a workout and log my weights on the workout-tracking page, So that I can keep track of my progress.

Schedules

  • As a user, I want to create, delete, and manage workout schedules with relevant data, So that I can plan my workouts effectively and know which exercises correlate to which data.

  • As a user, I want my schedules to calculate the time remaining until the scheduled workout, So that I can stay aware of upcoming workouts and prepare accordingly.

Points

As a user, I want to earn points by completing fitness challenges, So that I can stay motivated and track my achievements.

Badges

As a user, I want to earn badges by completing activities such as adding friends and completing workouts, So that I can showcase my accomplishments and stay motivated.

Fitness

As a user, I want to set fitness goals for myself, So that I can have a clear target to work towards.


Use Case Diagrams

Below are some use case diagrams of the features we have implemented.

  • Workout Tracking

    • image
  • Badges

    • image
  • Points

    • image
  • Goals

    • image
  • Schedule Subsystem

    • image
  • Authentication Subsystem

    • image
  • Profile Subsystem

    • image
  • Friends Subsystem

    • image

Class Diagram

Capture

Deployment Diagram

image