First off, thank you for taking the time to contribute! Contributions from the community help make this project a great resource for the Flutter and Spring communities.
This project is an educational Flutter implementation inspired by the Angular version of Spring Petclinic. Contributors should aim to keep the UI, structure, and workflow consistent with the original project and avoid unnecessary deviations unless clearly justified. For reference, you can explore the Spring Petclinic community.
You can contribute in several ways, including reporting bugs, suggesting enhancements, improving documentation, writing and improving tests, and providing general feedback.
Important: Please open an issue before starting any work. This allows discussion, helps define the scope, and ensures contributions align with the project direction.
- Check existing issues: See if the bug has already been reported in the Issue Tracker.
- Provide detail: When opening a new issue, include a clear title, description, steps to reproduce, and any relevant logs or screenshots.
- Environment: Mention your Flutter version (
flutter doctor -v) and the platform (Android/Web) where the bug occurs.
If you would like to fix a bug, please ensure that an issue exists and is clearly defined. Keep your changes focused on the problem and avoid introducing unrelated modifications.
New features should be discussed through an issue before implementation. This helps ensure the feature aligns with the project goals and avoids duplicate or unnecessary work.
If you have ideas for improvements such as refactoring, performance optimizations, documentation updates, or test coverage, feel free to propose them. Clearly explain the purpose and expected benefit of your changes.
To ensure your contribution is accepted:
- Code follows the project's formatting, linting, and style guidelines
- Code is properly formatted (e.g.,
dart format .) - Code must pass static analysis checks (e.g.,
flutter analyzeshould show no issues) - All existing and newly added tests pass successfully (e.g.,
flutter test), and any new functionality includes appropriate test coverage where applicable - Pull request title and commit messages follow the conventional commit format (e.g.,
feat:,fix:,docs:,chore:, etc.), are clear and descriptive, and accurately reflect the changes made
Ensure your changes are associated with an existing issue. This helps define the scope, avoid duplicate efforts, and keep contributions aligned with the project.
- Fork the repository and create a new branch using a meaningful name
- Make your changes and sync with the latest updates from the main repository if needed
- Push your branch and open a Pull Request
Keep your changes focused on the scope of the issue and avoid introducing unrelated modifications. Prefer small, easy-to-review pull requests and write clear, meaningful commit messages.
- Code follows the project structure and naming conventions, with no unrelated changes included
- Changes are properly tested and do not break existing functionality
- PR is focused on a single purpose and includes only necessary files and updates
After creating an issue or Pull Request:
- Stay responsive to feedback
- Make requested changes promptly
- Be open to suggestions and improvements
💙 Thanks again for contributing!