Skip to content

Latest commit

 

History

History
154 lines (120 loc) · 3.05 KB

CONTRIBUTING.md

File metadata and controls

154 lines (120 loc) · 3.05 KB

Contributing to POWR

First off, thank you for considering contributing to POWR! This document provides guidelines and steps for contributing.

Getting Started

  1. Fork the Repository
  2. Clone your fork
  3. Create a new branch: git checkout -b feature/your-feature-name
  4. Make your changes
  5. Commit with clear messages
  6. Push to your fork
  7. Submit a Pull Request

Development Setup

  1. Install dependencies:
npm install
  1. Start the development server:
npx expo start

Code Style Guidelines

TypeScript

  • Use TypeScript for all new code
  • Provide proper type definitions
  • Avoid using any
  • Document complex types

React/React Native

  • Use functional components
  • Implement proper error boundaries
  • Follow React hooks best practices
  • Keep components focused and reusable

Testing

  • Write tests for new features
  • Maintain existing test coverage
  • Use descriptive test names
  • Follow the "Arrange-Act-Assert" pattern

Documentation

Code Documentation

  • Use JSDoc comments for functions and classes
  • Document component props
  • Explain complex logic
  • Keep inline comments clear and necessary

Updating Documentation

  • Update README.md if needed
  • Document new features
  • Update CHANGELOG.md
  • Add migration notes if needed

Pull Request Process

  1. Create a descriptive PR title
  2. Fill out the PR template
  3. Link related issues
  4. Update documentation
  5. Ensure tests pass
  6. Request review
  7. Address feedback

Commit Messages

Follow the conventional commits specification:

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation changes
  • style: Code style changes
  • refactor: Code refactoring
  • test: Test updates
  • chore: Build process updates

Example:

feat(exercise): add custom exercise creation

- Add exercise form component
- Implement validation
- Add database integration

Working with Issues

  1. Check existing issues first
  2. Use issue templates when available
  3. Provide clear reproduction steps
  4. Include relevant information:
    • Platform (iOS/Android/Web)
    • React Native version
    • Error messages
    • Screenshots if applicable

Code Review Process

Submitting Code

  • Keep PRs focused and small
  • Explain complex changes
  • Update tests and documentation
  • Ensure CI checks pass

Reviewing Code

  • Be respectful and constructive
  • Focus on code, not the author
  • Explain your reasoning
  • Approve once satisfied

Design Guidelines

UI/UX Principles

  • Follow platform conventions
  • Maintain consistency
  • Consider accessibility
  • Support dark mode

Component Design

  • Keep components focused
  • Use proper prop types
  • Implement error handling
  • Consider reusability

Release Process

  1. Version bump
  2. Update CHANGELOG.md
  3. Create release notes
  4. Tag the release
  5. Build and test
  6. Deploy

Questions?

If you have questions:

  1. Check existing issues
  2. Review documentation
  3. Open a discussion
  4. Ask in our community channels

Community Guidelines

  • Be respectful and inclusive
  • Help others learn
  • Share knowledge
  • Give constructive feedback
  • Follow the code of conduct