https://github.com/ceejbot/barbell
a hood.ie app for tracking your 5x5 lifting program
https://github.com/ceejbot/barbell
Last synced: 12 months ago
JSON representation
a hood.ie app for tracking your 5x5 lifting program
- Host: GitHub
- URL: https://github.com/ceejbot/barbell
- Owner: ceejbot
- License: mit
- Created: 2013-11-03T19:10:14.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2017-05-02T18:08:06.000Z (about 9 years ago)
- Last Synced: 2025-07-06T22:17:59.694Z (12 months ago)
- Language: CSS
- Size: 104 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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:
```javascript
{
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:
```javascript
{
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](http://thenounproject.com/noun/weight-lifting/#icon-No883).