First off, thank you for considering contributing to TrustGuard! It's people like you that make TrustGuard such a great tool.
- Code of Conduct
- Getting Started
- Development Setup
- How to Contribute
- Code Style
- Pull Request Process
- Adding Translations
This project and everyone participating in it is governed by the TrustGuard Code of Conduct. By participating, you are expected to uphold this code.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/your-username/TrustGuard.git cd TrustGuard - Install Flutter following the official guide
- Install dependencies:
cd app flutter pub get
- Flutter SDK (Stable channel, 3.9+)
- Dart SDK 3.9+
- Android Studio or VS Code with Flutter extensions
- Android SDK (for Android development)
- Xcode (for iOS development, macOS only)
We use build_runner for code generation. After modifying models or database tables, run:
dart run build_runner build --delete-conflicting-outputsflutter runflutter testBefore creating bug reports, please check the existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples (code snippets, screenshots)
- Describe the behavior you observed and expected
- Include your environment details (Flutter version, device, OS)
Feature suggestions are welcome! Please provide:
- A clear and descriptive title
- A detailed description of the proposed feature
- Explain why this feature would be useful
- Any mockups or examples if applicable
- Create a new branch for your feature or bug fix:
git checkout -b feature/amazing-feature
- Make your changes
- Write or update tests as needed
- Ensure all tests pass
- Submit a pull request
- Follow the official Dart style guide
- Use
constconstructors wherever possible - Prefer named parameters for better readability
- Keep functions focused and under 50 lines when possible
# Format code
dart format .
# Run analyzer
flutter analyze
# Run tests
flutter testWe follow Conventional Commits:
type(scope): description
[optional body]
[optional footer]
Types: feat, fix, docs, style, refactor, test, chore
Examples:
feat(expenses): add percentage-based split modefix(balance): resolve calculation error with transfersdocs(readme): update installation instructions
- Code is formatted and passes linting (
flutter analyze) - Unit and widget tests are added/updated and passing
- Accessibility standards maintained (Semantics, contrast, touch targets)
- Documentation updated if necessary
- No breaking changes (or clearly documented if unavoidable)
- At least one maintainer review is required
- All CI checks must pass
- Changes will be squash-merged into main
TrustGuard uses Flutter's standard localization (l10n) system with ARB files.
- Navigate to
app/l10n/ - Create a new ARB file:
app_{locale}.arb(e.g.,app_es.arbfor Spanish) - Copy contents from
app_en.arband translate the values - Run code generation:
flutter gen-l10n
- Test by changing your device language
- Preserve parameters like
{count},{payer},{amount}in translations - Use ICU format for plurals
- Keep translations concise but clear
- Test on actual devices to check text overflow
Feel free to open an issue for any questions or discussions. We're happy to help!
Thank you for contributing!