-
Notifications
You must be signed in to change notification settings - Fork 1
SRS_Demo4
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.
The functional requirements of SweatSession are listed as follows:
- 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
- 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
- Users should be able to track their progress
- Users should be able to set goals
- Users should be able to view personal bests
- Users should be awarded badges/points for milestones like achieving a personal best, completing a workout schedule, number of workout sessions, etc.
- There should be a leaderboard that contains user's points from the reward system allowing users to compete and see each other's progress
- 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.
- 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.
- 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.
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.
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.
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.
-
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.
As a user, I want to earn points by completing fitness challenges, So that I can stay motivated and track my achievements.
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.
As a user, I want to set fitness goals for myself, So that I can have a clear target to work towards.
As a user, I want to calculate the calories and nutritional values of the food I consume, So that I can control my food intake and achieve my fitness goals.
As a user, I want to discover new stretching techniques and exercises, So that I can improve my fitness and overall wellbeing.
To increase the user experience and impress users, we developed 2 wow factors related to our app to elevate the experience.
The exercise explorer is a system that has a 3D Model that the user can interact with. This model is is segmented into different muscle groups, and the user can click on the muscle groups. Depending on which muscle the user clicks, the app will navigate to a page with exercises and instructional information to perform these exercises for the respective muscle groups.
- Model
![image](https://private-user-images.githubusercontent.com/114673615/277670223-eb50e05e-f177-4b6e-8a5c-989620bf433e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxOTYwNjYsIm5iZiI6MTczOTE5NTc2NiwicGF0aCI6Ii8xMTQ2NzM2MTUvMjc3NjcwMjIzLWViNTBlMDVlLWYxNzctNGI2ZS04YTVjLTk4OTYyMGJmNDMzZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxMzU2MDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hNzVjMGJjZTRmMWNhZTllY2UxMjEwYTE0YjhlODY4NmU5NWZlODE5ZWZmOTAyMjY1Zjk4YzJmNDExOTJkNjY2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.RQMu_RVw0zMulbe4nyfsc9fROoUgd4heN5DQ_3BZr3w)
- Exercises
![image](https://private-user-images.githubusercontent.com/114673615/277670349-675333e3-314c-4894-b176-bc57d2546ac5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxOTYwNjYsIm5iZiI6MTczOTE5NTc2NiwicGF0aCI6Ii8xMTQ2NzM2MTUvMjc3NjcwMzQ5LTY3NTMzM2UzLTMxNGMtNDg5NC1iMTc2LWJjNTdkMjU0NmFjNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxMzU2MDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zZjY0MDQ0ZmZmMGJjMzQ5MmU4ZTk5YmIwYTFiZDc2NzMzYWM3NzhiZmQ0ZjQ0N2E3ODg5YWFiYjRlMWU2Yjc2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.CL1UIgz_akVPUCX82HJDQ-dMmbJy5gFTjeaxxN-y148)
The diet calculator is our second wow factor that has three modes. The first mode, target, makes use of equations to calculate the users target calories per day based on their health information stored in the health data. The second mode, intake, makes use of an API. It uses an NLP to digest a user's prompt of what they ate into its individual parts, and compare these parts to the database and give the total caloric and macronutrient information. The final mode is called workout and it calculates how many calories a user burns based on the exercises they do using MET equations. These exercises can either be manually added, or imported from a pre-existing schedule for quality of life purposes.
- Target
![image](https://private-user-images.githubusercontent.com/114673615/277670488-6dad5243-3af5-4019-8281-36632f721f59.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxOTYwNjYsIm5iZiI6MTczOTE5NTc2NiwicGF0aCI6Ii8xMTQ2NzM2MTUvMjc3NjcwNDg4LTZkYWQ1MjQzLTNhZjUtNDAxOS04MjgxLTM2NjMyZjcyMWY1OS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxMzU2MDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zOWJiYzdkMzZjODNmYTQ5MjBkYWRiMDI0ZWY5M2E4OTE1YmJlM2E0MDI5MmE1NTNjZGJkMDZlZDc1NGEwNzJmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.6KKZqhncNMXc8KtQmirkEcQht6gJFa9jTR3h1jcA0tw)
- Diet
![image](https://private-user-images.githubusercontent.com/114673615/277670630-53b86639-fb9c-44b6-a104-388d60bdba6b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxOTYwNjYsIm5iZiI6MTczOTE5NTc2NiwicGF0aCI6Ii8xMTQ2NzM2MTUvMjc3NjcwNjMwLTUzYjg2NjM5LWZiOWMtNDRiNi1hMTA0LTM4OGQ2MGJkYmE2Yi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxMzU2MDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xMjlhMzIwYzYwNTliOGE4ZGM2ZWJlNWU3NzIwZmU3MTE1NWRiNmVmMzRmNjI3ZGI2OGE4NzM1ZjVkYWQ3YzYzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.T_LMedLwQxeLB9QRU0_rGg7aM5RgUMLJTf2VuEbGadQ)
- Workout
![image](https://private-user-images.githubusercontent.com/114673615/277670882-d18e8693-66ac-4071-ac11-ebed93369fb8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxOTYwNjYsIm5iZiI6MTczOTE5NTc2NiwicGF0aCI6Ii8xMTQ2NzM2MTUvMjc3NjcwODgyLWQxOGU4NjkzLTY2YWMtNDA3MS1hYzExLWViZWQ5MzM2OWZiOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxMzU2MDZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iMzU3YWNhYmVmMTI1NmQ0MWUwYzdhNWQ3MDA1NmFiYzg2MTcwNmJlNTc2Y2FiY2NjZjAxYTkwYjc5ZjU2ZWM1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.g2hEaDwWdxmT0lNffJELgy2j5WjdeUlS7Fx-qaAJZe0)
Below are some use case diagrams of the features we have implemented.
-
Workout Tracking
-
-
Badges
-
-
Points
-
-
Goals
-
-
Schedule Subsystem
-
-
Authentication Subsystem
-
-
Profile Subsystem
-
-
Friends Subsystem
-