Skip to content

feat: add 5 new bodyweight exercises#111

Merged
IamDg merged 8 commits into
LibreFitOrg:mainfrom
ByYeah:feature/add-new-exercises
Jul 15, 2026
Merged

feat: add 5 new bodyweight exercises#111
IamDg merged 8 commits into
LibreFitOrg:mainfrom
ByYeah:feature/add-new-exercises

Conversation

@ByYeah

@ByYeah ByYeah commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Description

This PR adds 5 new bodyweight exercises to the dataset to expand the variety available to users.

Exercises added:

  • Wall Sit (Isometric squat against the wall)
  • Plank Shoulder Taps
  • Bottom Push-Up Hold
  • Cobra Stretch
  • Jumping Jacks

Verifications Performed

  • The images are in .webp format with a white background.
  • Corresponding folders have been created in app/src/main/assets/ with the correct id.
  • The exercises.json file has been validated locally with the npx ajv-cli validate command without errors.
  • The instructions are clear and detailed.
  • The ids are unique and there are no duplicates.

- Wall Sit (isometric squat)
- Plank Shoulder Taps
- Bottom Push-Up Hold
- Cobra Stretch
- Jumping Jacks

All exercises include proper images and validated JSON structure
@IamDg
IamDg self-requested a review July 5, 2026 11:14

@IamDg IamDg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi,

Thank you for your contribution!

I've left some comments in the review. Last thing before merging: can you please order all the entries of json file alphabetically by id? You can check out the validation script I've just added, which also orders alphabetically the json. More info about that in CONTRIBUTING.md.

Edit: Also, update this branch to main so new validation can run

Comment thread app/src/main/res/raw/exercises.json Outdated
"Hold for the prescribed amount of time, keeping your breathing steady."
],
"category": "strength",
"images": ["Wall_sit/0.webp", "Wall_sit/1.webp"],

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relative paths must match ids which in turn have to follow Pascal_Snake_Case

Suggested change
"images": ["Wall_sit/0.webp", "Wall_sit/1.webp"],
"images": ["Wall_Sit/0.webp", "Wall_Sit/1.webp"],

Comment thread app/src/main/res/raw/exercises.json Outdated
"level": "beginner",
"mechanic": "isolation",
"equipment": "body only",
"primaryMuscles": ["lower back"],

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is anatomically incorrect for this category. Because this is a "stretching" exercise, the target muscle is the one being elongated/stretched. The Cobra stretch elongates the anterior chain, primarily targeting the abdominals (and hip flexors). The lower back (erector spinae) acts as an antagonist here and is actively contracting (shortening) to extend the spine, not stretching.

Suggested change
"primaryMuscles": ["lower back"],
"primaryMuscles": ["abdominals"],

Comment thread app/src/main/res/raw/exercises.json Outdated
},
{
"name": "Cobra Stretch",
"force": "push",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While the arms do push against the floor to raise the chest, you are ultimately holding a stretch for 10-30 seconds. For isometric stretching holds, categorizing the force as "static" is more physiologically accurate and aligns better with your other hold exercises

Suggested change
"force": "push",
"force": "static",

ByYeah added 2 commits July 9, 2026 23:47
- Order all exercises alphabetically by id
- Fix image path casing for Wall_Sit (Wall_sit -> Wall_Sit)
- Correct primaryMuscles for Cobra Stretch (lower back -> abdominals)
- Change force type for Cobra Stretch (push -> static)
- Format primaryMuscles, secondaryMuscles, images, and instructions arrays
- Use multi-line format with proper indentation
- Maintain consistency with existing exercise entries
@ByYeah

ByYeah commented Jul 10, 2026

Copy link
Copy Markdown
Contributor Author

I've applied all the suggested changes:

  • Ordered exercises alphabetically by id
  • Fixed image paths and casing for Wall_Sit
  • Updated primaryMuscles for Cobra Stretch to "abdominals"
  • Changed force for Cobra Stretch to "static"
  • Formatted arrays consistently with project style

Both the npx and python tests passed successfully, and thank you so much for your interest and suggestions, I hope the project can continue to grow.

@IamDg IamDg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, it looks good now. Last thing: can you please merge main first in your branch so I can accept your PR?

@ByYeah

ByYeah commented Jul 11, 2026

Copy link
Copy Markdown
Contributor Author

Heya, almost forgot the response, the branch is uptime to the main.

IamDg added 4 commits July 15, 2026 13:02
"abdominals" is listed in both the `primaryMuscles` and `secondaryMuscles` arrays.
In strength training, "push" and "pull" refer to the direction of force applied against resistance (gravity or cables). A Jumping Jack is dynamic, full-body cardio involving multiple opposing movements
@IamDg
IamDg merged commit bcbfe10 into LibreFitOrg:main Jul 15, 2026
3 checks passed
@IamDg

IamDg commented Jul 15, 2026

Copy link
Copy Markdown
Member

Hi @ByYeah,

Thank you for your contribution!

It will be included in next release (which will be in next couple of days/weeks). In the meantime, if you want, you can reedem your code at https://librefit.org/donate. Let me know if it works as expected!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants