Skip to content

ceejbot/barbell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Barbell [barbell]

A nodejs command-line tool for tracking a 5x5 lifting program.

Still in early development mode.

Implementation notes

Interactions

Setup

Interview for name & prefs on first run. Settings gear will revisit all choices.

Display in Metric vs American weights. (All weights recorded in pounds; conversion at moment of display.)

Rest time in milliseconds; defaults to 3 * 60 * 1000.

Record a workout

TODO: update this design for command-line-ness.

Record a new workout.

  • Show a page with the appropriate workout with suggested starting weights + reminder of reps per set.
  • Workout is the next one in the cycle.
  • If success in last iteration of the lift, weight is bumped up 5lbs/2.5 kg.

At workout start, the first lift is shown. Name in big type.

First stage: warm up. Warmup weight progression is suggested.

Second stage: lift.

A "start" button commences the set. The weight display switches to show the goal weight, with possibly a suggestion for which plates to put on the bar. After that "5 reps" or "3 reps", then the button pair. This display should comfortably take up most of an iPhone screen.

Each set has a checkmark / cancel button pair next to it. The user presses checkmark to indicate success in all lifts, cancel to indicate failure. If failure, user can optionally enter how many reps were successes.

Third stage: rest. When the success/fail button is pressed, the rest timer starts. Countdown + "stop and move on" button shown.

At end of rest stage, next set is shown.

At end of workout, total time elapsed + congratulatory message.

Edit workouts

  • Add/remove lifts from workouts.
  • Add new lifts to available list.
  • Add/remove workouts.

History

View workout history. Graphs for each lift? Some kind of encouraging visualization of progress over time.

Data tracked

Two workouts: A, B. Each workout has 3 lifts.

Lift data structure:

  • uid: probably auto-generated by couch
  • title: string; short, shown everywhere in UI
  • 3reps: boolean; this lift gets sets of 3 reps because of intensity

User data:

{
    name: 'Human Name',
    tz: tz-name,
    workouts:
    {
        A: [ uid1, uid2, uid3 ],
        B: [ uid1, uid4, uid5 ]
    },
    lifts:
    {
        uid1: { max: weight-in-lbs, ts: last-time-lifted },
        uid2: { max: weight-in-lbs, ts: last-time-lifted },
        // etc;
    }
}

History: Array of workouts.

Workout data structure:

{
    label: "A",
    ts: ms-since-epoch,
    lifts:
    [
        { 
            id: 'lift-id',
            weight: weight-in-lbs,
            done: boolean
        },
        { id: 'id2', weight: w, done: bool }
    ]
}

Defaults

Canned list of well-known lifts.

back squat, false  
deadlift,  true  
bench press, false  
overhead press, false  
Pendlay row, false  
front squat, false  
overhead squat, false  
power clean, true  
good morning, false  
RFESS, false  
hip bridge, false  
kb swings, false 
kb snatches, false 
Turkish get-ups, true  
push-press, false  
split jerk, true  
snatch, true  

Default starting point:

A: squat, bench press, deadlift, 45# each.
B: squat, overhead press, pendlay row, 45# each.

Default measure: in pounds.

LICENSE

MIT

Credits

The logo image is by Scott Lewis from The Noun Project.

About

a hood.ie app for tracking your 5x5 lifting program

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors