An open source webapp to track your workout of the day capturing key points of data.
- To install Ruby using RVM
rvm install 4.0.5 - Set the current ruby to the one installed above
rvm use 4.0.5 - Create the gemset needed for this project
rvm gemset create wod-trackermake sure to use itrvm gemset use wod-tracker - Ensure at a minimum bundler is install
gem install bundle
- run
bundle install - run
yarn
- If using a Mac with homebrew you can install postgresql by running
brew install postgresql - Run
rails db:setup(If this is the first time you are setting the app up, else runrails db:migrate) - Run
rails db:seed
- run
rails test
- run
rubocop
- run
rails s
- Fetch and parse a single day's workout from crossfit.com into a structured
Workoutand print it (does not persist anything):rails "cf_wod:fetch[2026-06-20]" - Scrape and persist a single day's workout and schedule:
rails "cf_wod:scrape[2026-01-01]" - Enqueue a scrape job for every day in an inclusive date range, staggered by 2 seconds per date:
rails "cf_wod:backfill[2026-01-01,2026-01-31]" - Date ranges must be ordered from earliest to latest. Reversed ranges abort with
start_date must be <= end_date. - Raises
CfWod::Fetcher::FetchErroron network errors, unexpected HTTP responses, or a page that doesn't match either known crossfit.com template. - Raises
CfWod::WorkoutParser::UnparseableErrorwhen the workout's prose doesn't match a known format, movement, or prescription pattern.