Thank you for your interest in contributing to Florid! We welcome contributions from everyone. This guide will help you get started.
- Code of Conduct
- How Can I Contribute?
- Development Setup
- Pull Request Process
- Style Guidelines
- Localization Guidelines
By participating in this project, you agree to maintain a respectful and inclusive environment for everyone.
Before creating bug reports, please check existing issues to avoid duplicates. When creating a bug report, include:
- Clear title and description
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Screenshots if applicable
- Device information (Android version, device model)
- App version you're using
Feature suggestions are welcome! Please:
- Check existing feature requests first
- Describe the feature in detail
- Explain the use case and why it would be valuable
- Consider implementation complexity
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Test thoroughly
- Commit with clear messages (
git commit -m 'Add amazing feature') - Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request
Florid uses Flutter ARB files for localization. The source-of-truth strings live in lib/l10n/app_en.arb.
-
Create a new ARB file:
- Add a file in
lib/l10n/namedapp_<locale>.arb(e.g.,app_fr.arb) - Copy the structure from
app_en.arb
- Add a file in
-
Translate all keys:
{ "app_name": "Florid", "welcome": "Your translation here", "search": "Your translation here" } -
Regenerate localization classes:
flutter gen-l10n
-
Test your translations:
- Change your device language to the new language
- Launch the app and verify all strings appear correctly
- Check that text fits in UI elements (some languages use longer words)
- Open the relevant ARB file in
lib/l10n/ - Update the translation values
- Ensure translations are:
- Accurate and contextually appropriate
- Natural in the target language
- Consistent with app terminology
- Test the changes in the app
- Flutter SDK (3.38.7 or higher)
- Dart SDK (3.9.2 or higher)
- Android Studio or VS Code with Flutter extensions
- Android device or emulator for testing
-
Clone the repository:
git clone https://github.com/Nandanrmenon/florid.git cd florid -
Install dependencies:
flutter pub get
-
Run the app:
flutter run
lib/
├── models/ # Data models
├── providers/ # State management (Provider)
├── screens/ # UI screens
├── services/ # API and business logic
├── themes/ # App themes
├── utils/ # Utility functions
├── widgets/ # Reusable widgets
└── main.dart # App entry point
lib/l10n/ # ARB localization files
- Update documentation if you've made changes to APIs or added features
- Add/update tests for new functionality
- Follow the style guidelines below
- Ensure the app builds without errors
- Test on a real device when possible
- Update CHANGELOG.md with notable changes
- Link any related issues in the PR description
- Code follows the project style guidelines
- Self-review of code completed
- Comments added for complex logic
- Documentation updated if needed
- No new warnings generated
- Translations added/updated if UI text changed
- Tested on Android device/emulator
If you have questions or need help:
- Open an issue with the
questionlabel - Check existing issues and discussions
- Review the documentation in the repository
By contributing to Florid, you agree that your contributions will be licensed under the same license as the project.
Thank you for contributing to Florid! 🎉