mirror of
https://github.com/DocNR/POWR.git
synced 2025-04-22 16:51:33 +00:00
154 lines
3.0 KiB
Markdown
154 lines
3.0 KiB
Markdown
![]() |
# 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:
|
||
|
```bash
|
||
|
npm install
|
||
|
```
|
||
|
|
||
|
2. Start the development server:
|
||
|
```bash
|
||
|
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
|