Skip to content

A personal workout log / journal web app targeted for mobile, built using Ruby on Rails, VueJS, and bootstrap.

License

Notifications You must be signed in to change notification settings

DeusFacticius/werkout

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Werkout

A personal workout log / journal web app targeted for mobile, powered by Ruby on Rails, VueJS, and bootstrap.

Primarily intended for private / personal use as an upgrade to the traditional notebook and pencil. The backend is designed to agnostic of presentation; acting mainly as a persistence layer with sprinkles to support specialized queries.

The frontend was designed to be a Single-Page Application (SPA), but it lacks a proper router, and ultimately, wasn’t really needed.

Given this was just for my own personal use, it does not have all the polish, security, or performance of a commercial application.

Models and Nomenclature

The data model and nomenclature is designed to reflect my own personal system of recording my workouts.

In regards to how it is modeled:

  • An ‘exercise set’ is a single set (instance) of a particular exercise. An exercise set has a weight (or 0 / null for bodyweight) to indicate the resistance used in the set. It also has both a ‘target’ number of repetitions (the desired / goal number of reps), and an actual number of repetitions. As a visual aid, a set in which the target number of reps was achieved, a positive ‘checkmark’ icon is used. When the target number is not achieved, a negative / red ‘x’ is displayed.

  • An ‘exercise’ is a particular machine, movement, and is composed of 0 or more exercise_sets.

  • A ‘cardio’ is a single bout of cariovascular exercise. It has attributes for name, duration, resistance level, and calories burned.

  • A ‘workout’ represents a whole workout session, and has 0 or more exercises, and 0 or more ‘cardios’.

Features

  • Navigation and controls designed for easy use on small, touch-screen devices. Textfields (which require the onscreen keyboard to comandeer a large portion of available screen real estate) are minimized in favor of buttons.

  • Building on the previous point, autocomplete is used where possible to save from requiring text input.

  • Quick reference popup of the sets from the most recent workout that had a matching exercise (To help choose appropriate weights and target reps in the current workout).

  • Glyphicons used in favor of text where possible.

Warning

This project is incomplete – there is barely (if any) unit tests, and the code is not as clean, commented, or documented up to the standards I uphold in my professional work. This is playground for practice and experimenting, while producing a tool I can use in another part of life.

About

A personal workout log / journal web app targeted for mobile, built using Ruby on Rails, VueJS, and bootstrap.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published