📈 GH Trending Explorer 🎲 Surprise me

← all repos

yuhonas / free-exercise-db

git clone https://github.com/yuhonas/free-exercise-db.git 🔥 on GitHub Trending today

Open Public Domain Exercise Dataset in JSON format, over 800 exercises with a browsable public searchable frontend

—
stars, 24h
—
stars, 7 days
+135
stars, 30 days · #1,741
2.0k
★ total
521
forks · 11 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageVue
LicenseUnlicense
Created2023-03-30 (3y ago)
Last push23d ago
Watchers29
OwnerUser

Seen on GitHub Trending

  • 2026-10-20 — #10 monthly in vue · +135 ★

GitHub topics

Links

README excerpt
## Free Exercise DB 💪   
Open Public Domain Exercise Dataset in `JSON` format, 800+ exercises with a browsable public searchable frontend
### Why?
I started building another fitness related app and was looking for free/open source exercise lists and imagery I stumbled upon
exercises.json which was amazing though the data wasn't structured the way I wanted it and I also wanted a browsable/searchable frontend to the data inspired by this issue so I restructured the data and built a simple frontend to it :)
### What do they look like?
All exercises are stored as seperate `JSON` documents and conform to the following JSON Schema eg.
 [code] 
See Alternate_Incline_Dumbbell_Curl.json
To further explore the data, you can use lite.datasette.io
### How do I use them?
You can check the repo out and use the `JSON` files and images locally
#### Alternatively
You can leverage github's hosting and access the single or combined exercises.json and prefix any of image path's contained in the `JSON` with `https://raw.githubusercontent.com/yuhonas/free-exercise-db/main/exercises/` to get a hosted version of the image eg. Air_Bike/0.jpg or leverage something like imagekit.io for dynamic image resizing which is utlized on the frontend example site 
### Build tasks
There are a number of helpful Makefile tasks that you can utilize
#### Linting
To lint all the `JSON` files against the schema.json use
 [code] 
#### Combining into a single JSON file
If you make changes to any of the exercises or add new ones, to recombine all single `JSON` files into a single `JSON` containing an array of objects using the following make task
 [code] 
_Note: requires jq_
#### Importing into PostgreSQL
To combine all `JSON` files into Newline Delimeted JSON suitable for import into PostgreSQL use the following make task
 [code] 
_Note: requires jq_
See also Importing JSON into PostgreSQL using COPY
### Browsable frontend
There is a simple searchable/browsable frontend to the data written in Vue.js available at yuhonas.github.io/free-exercise-db all related code is in the site directory
#### Setup
 [code] 
#### Compile and Hot-Reload for Development
 [code] 
#### Compile and Minify for Production
 [code] 
#### Run Unit Tests with Vitest
 [code] 
#### Run End-to-End Tests with Cypress
 [code] 
This runs the end-to-end tests against the Vite development server.
It is much faster than the production build.
But it's still recommended to test the production build with `test:e2e` before deploying (e.g. in CI environments):
 [code] 
#### Lint with ESLint
 [code] 
### TODO
#### Incomplete fields
The following fields are incomplete in _some_ `JSON` files and in such have had to allow `null` in schema.json
* force
* mechanic
* equipment
#### Images
There are also a small number of duplicate images eg.
 [code] 
### Contributors
Made with contrib.rocks.
Contributions are always welcome! Please read the contribution guidelines first.
### Special Thanks 🙇
* Ollie Jennings for the original dataset at exer