All Projects → twhughes → Script_My_Workout

twhughes / Script_My_Workout

Licence: Apache-2.0 license
🏃 Programmable workouts from the comfort of your terminal 🏃

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Script My Workout

rn-fitness-tracker
React Native module to interact with Google Fit and Apple HealthKit.
Stars: ✭ 58 (+205.26%)
Mutual labels:  fitness, workout
garmin health
Python 3.x library to access Garmin Connect Health API
Stars: ✭ 32 (+68.42%)
Mutual labels:  fitness, fitness-tracker
traindown
Public site
Stars: ✭ 35 (+84.21%)
Mutual labels:  fitness, fitness-tracker
ha strava
Pipe your Activity Data from Strava directly into Home Assistant
Stars: ✭ 63 (+231.58%)
Mutual labels:  fitness, fitness-tracker
flutter
Flutter fitness/workout app for wger
Stars: ✭ 106 (+457.89%)
Mutual labels:  fitness, workout
traindown-dart
Dart (and Flutter) library for the Traindown Markup Language. This is the reference implementation for now. It is first to receive features and fixes.
Stars: ✭ 16 (-15.79%)
Mutual labels:  fitness, fitness-tracker
one-rep-max
To some extent: A ClojureScript app for tracking workout data. But mostly: Some guy on the internet trying his hand at ClojureScript.
Stars: ✭ 35 (+84.21%)
Mutual labels:  fitness, workout
Wger
Self hosted FLOSS fitness/workout, nutrition and weight tracker written with Django
Stars: ✭ 1,372 (+7121.05%)
Mutual labels:  fitness
Choochoo
Training Diary
Stars: ✭ 186 (+878.95%)
Mutual labels:  fitness
Phormatics
Using A.I. and computer vision to build a virtual personal fitness trainer. (Most Startup-Viable Hack - HackNYU2018)
Stars: ✭ 79 (+315.79%)
Mutual labels:  fitness
Fitly
Self hosted web analytics for endurance athletes
Stars: ✭ 65 (+242.11%)
Mutual labels:  fitness
Fitness android
Android健身app,在普通健身app的基础上加入了社交功能(类似KEEP、FEEL、轻+、减约、薄荷等) 毕设项目
Stars: ✭ 107 (+463.16%)
Mutual labels:  fitness
React Native Fitness
A React Native module to interact with Apple Healthkit and Google Fit.
Stars: ✭ 236 (+1142.11%)
Mutual labels:  fitness
Stayfit
📱 🏃 🍎 Fitness application that’s used to keep track of your physical fitness data, daily calorie count, invite friends to work out together and ultimately get healthy.
Stars: ✭ 90 (+373.68%)
Mutual labels:  fitness
SmartSpin2k
Transform your spin bike into a Smart Trainer!
Stars: ✭ 88 (+363.16%)
Mutual labels:  fitness
feeel
A cross-platform Flutter home workout app that respects your privacy. THIS IS A GITLAB MIRROR, file issues and contribute there.
Stars: ✭ 27 (+42.11%)
Mutual labels:  workout
Hitrava
Convert your Huawei Health sport activities and import them in Strava.
Stars: ✭ 156 (+721.05%)
Mutual labels:  fitness
Fitness
Flutter 仿微博客户端!A Weibo client application developed with Flutter, which supports both Android and iOS.
Stars: ✭ 75 (+294.74%)
Mutual labels:  fitness
Gymnasticon
Make obsolete and/or proprietary exercise bikes work with popular cycling training apps like Zwift, TrainerRoad, Rouvy and more.
Stars: ✭ 155 (+715.79%)
Mutual labels:  fitness
Cycloo
An E-commerce Web App for customers to buy Bicycles by not only buying them on their looks and price, but also providing them the fitness benefits of the particular bicycle he/she will be getting on purchase.
Stars: ✭ 22 (+15.79%)
Mutual labels:  fitness

Script My Workout

Create your own terminal-based workouts!

What is it

'Script My Workout' is a framework that lets you define and run your own workout exercise programs, which run right in the terminal.

Each workout is comprised of different sections, which contain a list of exercises and a routine, which is a function that runs through them in a user-defined sequence.

When running each section, the program prints information to the terminal and narrates the process out loud for you to follow along with.

How to install

Note that this package (and the installation instructions) work with python 3 (and pip 3). Depending on how your system is set up, you might need to replace python with python3 and pip with pip3 in the following to make this explicit.

Run the following commands

git clone https://github.com/twhughes/Script_My_Workout.git
cd Script_My_Workout
pip install -e .

You can test if it worked by running one of the example workouts

python -m workout examples/easy.yaml

How to use

There are two ways to define workouts:

YAML file

The simplest way is to define a workout in a YAML file.

For example, the following yaml file examples/easy.yaml defines a simple workout:

name: easy workout

sections:

  section1:
    name: warmup
    routine: one_min_each
    exercises:
      - toe touch
      - run in place

  section2:
    name: HIT
    routine: abab_25
    exercises:
      - jumping jacks
      - burpees
      - push ups
      - high knees

  section3:
    name: cooldown
    routine: one_min_each
    exercises:
      - hamstring stretch
      - cobra stretch

And one can run this file with

python -m workout examples/easy.yaml

There are a few other example files in the examples/ directory.

Python Script

For a bit more customization, one can also write a workout script in python.

Here's an example script that defines and runs a simple workout.

# import basic things you need from the package + routines and exercises
from workout import workout, section
from workout.exercises import warmup_exercises, hit_exercises, cooldown_exercises
from workout.routines import one_min_each, abab_25

# define the different `sections` of your workout with a list of exercises and a routine for running them
warmup   = section(name='warmup',   exercises=warmup_exercises,   routine=one_min_each)
hit      = section(name='HIT',      exercises=hit_exercises,      routine=abab_25)
cooldown = section(name='cooldown', exercises=cooldown_exercises, routine=one_min_each)

# create a workout defined by a list of sections
hard_workout = workout(name='easy', sections=[warmup, hit, cooldown])

# run the workout
hard_workout.run()

For an example, run the script simple_script.py.

python examples/simple_script.py

Customizing your own workouts.

Workouts are fully customizable by editing the files in the workout/ directory.

  1. Define lists of exercises in workout/exercises.py, which define the categories of exercise you want to perform.

  2. Make routines in workout/routines.py, which define how to run through your excercises.

  3. Group your exercises and routines into 'sections' using workout/sections.py.

  4. Combine sections together to form daily workouts in workout/workouts.py.

Features Coming soon

  • Workout definition through YAML file.
  • Progress bar display.
  • Trainers with different personalities.
  • Customizable command line interface (define workout via command line arguments)
  • More sophisticated definition of exercises (difficulty, categories, etc.)
  • Randomization of workouts (choose amount of time and difficulty -> generate exercise list)
  • ASCII art for each exercise.

I fully welcome contributions or ideas for new features or improvements! Please leave an issue or pull request if you want to make any contributions.

Credit

Copyright (2020) Tyler Hughes Logo by Nadine Gilmer @nagilmer

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].