Thank you for your interest in contributing to LiftShift! We welcome contributions from everyone. This document provides guidelines and instructions for contributing.
- Code of Conduct
- Getting Started
- Development Setup
- How to Contribute
- Reporting Bugs
- Suggesting Enhancements
- Pull Request Process
- Coding Standards
- Commit Messages
This project is committed to providing a welcoming and inspiring community for all. Please read and respect our code of conduct:
- Be respectful and inclusive
- Be patient and constructive
- Focus on what is best for the community
- Show empathy towards other community members
- Node.js v18 or higher
- npm v9 or higher
- Git
- A text editor (VS Code recommended)
-
Fork the repository
# Visit https://github.com/aree6/LiftShift # Click "Fork" button
-
Clone your fork
git clone https://github.com/<your-username>/LiftShift.git cd LiftShift
-
Add upstream remote
git remote add upstream https://github.com/aree6/LiftShift.git
-
Install dependencies
npm install
-
Start the development server
npm run dev
The app will be available at
http://localhost:3000
We appreciate all types of contributions:
- Bug Fixes - Fix bugs and issues
- Features - Add new functionality
- Documentation - Improve docs and README
- Performance - Optimize code and improve performance
- Tests - Add or improve test coverage
- Refactoring - Improve code quality and structure
- Check if the bug has already been reported in Issues
- Try to reproduce with the latest code
- Collect information about the bug
Create an issue with:
- Clear title - Briefly describe the issue
- Description - Detailed explanation of the problem
- Steps to Reproduce - Exact steps to reproduce the issue
- Expected Behavior - What should happen
- Actual Behavior - What actually happened
- Screenshots - If applicable
- Environment - Browser, OS, Node version, etc.
Example:
Title: Volume chart not rendering on Safari
Description:
The volume chart component fails to render on Safari browser.
Steps to Reproduce:
1. Open the app
2. Select your platform
3. Complete setup (Hevy login/CSV or Strong CSV)
4. Reproduce the issue
2. Go to Dashboard tab
3. Observe the volume chart area
Expected: Chart displays with data
Actual: Empty white space where chart should be
Environment: Safari 17.1, macOS 14.0, Node 18.17.0
- Check if feature already exists or has been suggested
- Describe the specific problem the enhancement solves
- List examples of how the feature would be used
Create an issue with:
- Clear title - Brief description of feature
- Current Behavior - Describe current functionality
- Desired Behavior - Describe desired functionality
- Possible Implementation - Optional technical suggestions
- Use Cases - Why this feature is needed
Example:
Title: Add export to PDF functionality
Current Behavior:
Users can only view their analytics in the app.
Desired Behavior:
Add ability to export workout summaries as PDF reports.
Use Cases:
- Share training progress with coaches
- Create training records for personal backup
- Print for physical training logs
- Create an issue describing what you'll work on
- Get feedback from maintainers before starting major work
- Create a branch:
git checkout -b feature/your-feature-name
- Keep commits focused - One feature/fix per commit
- Write clear commit messages - See Commit Messages
- Test your changes - Run the app and verify functionality
- Keep code clean - Follow Coding Standards
-
Push to your fork
git push origin feature/your-feature-name
-
Create Pull Request
- Go to the original repository
- Click "New Pull Request"
- Select your branch
- Fill out the PR template
-
PR Description Should Include
- Link to related issue:
Fixes #123 - Description of changes
- Screenshots/GIFs if UI changes
- Testing instructions
- Any breaking changes
- Link to related issue:
-
Respond to Feedback
- Be open to constructive criticism
- Make requested changes
- Respond to reviewer comments
- Use descriptive branch names:
feature/add-pr-trackingnotfix/stuff - Keep PRs focused - don't bundle unrelated changes
- Rebase and squash commits before merging:
git rebase -i upstream/main - Ensure CI passes (when available)
- All conversations should be resolved
See docs/CONTRIBUTING-DETAILS.md for the full coding standards (TypeScript, React, styling, naming).
See docs/CONTRIBUTING-DETAILS.md for commit message format, types, and examples.
- Check existing issues and discussions
- Ask in GitHub Discussions
- Open a new issue with the question tag
Thank you for contributing! Your efforts help make LiftShift better for everyone. 🙏