ScorpionFiko / chad-gpt

MIT License
0 stars 2 forks source link

Chad-GPT: Your one stop for all your fitness needs

University of Toronto - Project 03 - Team 09 - Chad-GPT

Description

Repository containing the code for the Chad-GPT application. Chad-GPT is your one stop shopping for creating workouts that match your fitness goal. All other apps target specific type of workout and you end up either downloading additional apps or paying higher fees in order to avail from additional fitness routines. Chad-GPT solves that issue by taking user input and tailoring the workout based on the needs. Not only that, the user can create and save several different types of workouts and alternate between them.

Each workout aims at providing the user the workout routine which consists of one or more exercises. Each exercise comes with the number of sets, reps per set, duration (in case of jogs or treadmill runs), and a possible image of how to perform the exercise.

Chad-GPT has the ability to be used offline on the device that was previously used to access the application. This makes the application perfect for taking it locations where internet connection is not readily available.

Below is the image of the Chad-GPT when user is not logged in. CGPT - Landing

Below is the image of the Chad-GPT when user is logged in. CGPT - Landing Logged In

Below is the image of the Chad-GPT when user creates a workout CGPT - workout

Below is the image of the Chad-GPT when user has selected a routine and image of an exercise. CGPT - routine

Table of Contents

Installation

You can use the app by going to https://chadgpt-fitness.herokuapp.com/

To install it on your device:

back to Table of Contents

Functionality

The following discusses at a high level about some of the features of the website. Detailed code implementation can be found as comments in the JS files.

Redux:

Redux is one of the popular state management libraries that provide "a predictable state container designed to help you write JavaScript apps that behave consistently across client, server, and native environments, and are easy to test. While it's mostly used as a state management tool with React, you can use it with any other JavaScript framework or library."

According to the official documentation at https://redux.js.org/ Redux:

Google Custom Search Engine:

The Custom Search Engine, also known as Programmable Search Engine, is a feature that Goolge provides where a user can modify the Google search engine to only look for specific types in information. For this specific application, the search engine has been programmed to only search images from workoutlabs.com to retrieve watermarked images of the exercises.

OpenAI

OpenAI is an Artificial Intelligence (AI) laboratory that conducts AI research. Their flagship - ChatGPT - interacts in a conversational way where the user can ask a question and the AI will respond. For the application, ChatGPT was provided with a sample JSON response to adhere to in order for the response to be properly parsed and saved in the database.

back to Table of Contents

Usage

To access application

  1. Go to https://chadgpt-fitness.herokuapp.com/ to access the application
  2. log in or set up an account
  3. To create a new workout, click on the Build workout menu option
    1. Enter information in all inputs
    2. Click on the generate button and wait for the application to update. Depending on the workout type, it may take up to two minutes to fully get the information from OpenAI
  4. The page should refresh and you should see the work out as a button
    1. click on the workout
    2. click on a day of the exercise routing
    3. click through each of the exercises to view the details about how to do it and the necessary sets and reps

back to Table of Contents

Credits

https://redux.js.org/ for information about their library and usage

back to Table of Contents

Tests

All tests have been performed manually using Chrome.

back to Table of Contents

License

Please refer to the LICENSE in the repo.

back to Table of Contents

Walkthrough

No walkthrough video required

back to Table of Contents

Future Development

Here are some of the items to be considered for future development.

  1. Add 'hire a trainer' option where the user can select between a small listing of trainers and also pay for the services
  2. Save some of the user input info (age, height weight, gender) into the database for quicker exercise build
  3. Move images closer to the actual workout card so that they are more easily visible on handheld devices.
  4. Progress tracking
  5. More interactivity for mobile devices.

back to Table of Contents

Contact

Stefan Marinov: GitHub | LinkedIn | E-mail

Mario Repas: GitHub | LinkedIn | E-mail

Kirk Hagglund: GitHub | LinkedIn | E-mail

back to Table of Contents