# Contributing to Daily Notification Plugin

Thank you for your interest in contributing to the Daily Notification Plugin for Capacitor! This document provides guidelines and instructions for contributing.

## Development Setup

1. Fork the repository
2. Clone your fork:

   ```bash
   git clone https://github.com/yourusername/capacitor-daily-notification.git
   cd capacitor-daily-notification
   ```

3. Install dependencies:

   ```bash
   npm install
   ```

4. Build the project:

   ```bash
   npm run build
   ```

## Development Guidelines

### Code Style

- Follow TypeScript best practices
- Use meaningful variable and function names
- Add JSDoc comments for public APIs
- Keep functions focused and single-purpose
- Maintain consistent indentation (2 spaces)
- Follow PEP 8 style guide for Python code
- Keep lines under 80 characters

### Testing

- Write unit tests for new features
- Update existing tests when modifying code
- Ensure all tests pass before submitting PR
- Add integration tests for complex features
- Test on both iOS and Android platforms

### Documentation

- Update README.md for significant changes
- Document new APIs in the code
- Update CHANGELOG.md for version changes
- Add examples for new features
- Keep documentation up to date

### Git Workflow

1. Create a feature branch:

   ```bash
   git checkout -b feature/your-feature-name
   ```

2. Make your changes
3. Commit your changes:

   ```bash
   git commit -m "feat: add your feature"
   ```

4. Push to your fork:

   ```bash
   git push origin feature/your-feature-name
   ```

5. Create a Pull Request

### Commit Messages

Follow conventional commits format:

- `feat:` for new features
- `fix:` for bug fixes
- `docs:` for documentation changes
- `style:` for code style changes
- `refactor:` for code refactoring
- `test:` for adding tests
- `chore:` for maintenance tasks

Example:

```
feat: add timezone support for notifications
```

## Pull Request Process

1. Update the README.md with details of changes if needed
2. Update the CHANGELOG.md with a note describing your changes
3. Ensure all tests pass
4. Request review from maintainers

## Code Review Guidelines

- Review code for:
  - Functionality
  - Test coverage
  - Documentation
  - Code style
  - Performance
  - Security

## Release Process

1. Update version in package.json
2. Update CHANGELOG.md
3. Create a release tag
4. Build and test release
5. Publish to npm

## Support

- Open issues for bugs
- Use discussions for feature requests
- Join the community chat for questions

## License

By contributing, you agree that your contributions will be licensed under the project's MIT License.
