Contributing Guide
How to contribute to the Everything App โ from setup to pull request.
Development Setup
- Fork the repository on GitHub
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/everything.git cd everything
- Install dependencies:
flutter pub get
- Run tests to verify setup:
flutter test
Development Workflow
- Create a feature branch from
master:git checkout -b feature/your-feature-name - Make your changes following the code conventions
- Write or update tests for your changes
- Run the full test suite:
flutter test
- Commit with a clear message:
git commit -m "feat: add event export to CSV"
- Push and open a Pull Request
Code Conventions
Architecture Rules
- Models โ Pure Dart, no Flutter imports. Immutable with
copyWith(). - Services โ No UI imports. Coordinate between state and data layers.
- Providers โ Expose
UnmodifiableListView. All mutations through named methods. - Views โ No business logic. Delegate to services/providers.
Commit Messages
Use Conventional Commits:
| Prefix | Use For |
|---|---|
feat: | New features |
fix: | Bug fixes |
refactor: | Code restructuring (no behavior change) |
docs: | Documentation changes |
test: | Adding or updating tests |
chore: | Build, CI, tooling changes |
Dart Style
- Follow Effective Dart guidelines
- Use
dart formatbefore committing - Add doc comments (
///) to all public APIs - Use meaningful variable names โ no single-letter names except loop counters
Testing Requirements
- All new models must have serialization round-trip tests
- All new services must have unit tests with mocked dependencies
- State changes (providers/blocs) must have tests verifying correct emissions
- Edge cases: empty inputs, null fields, malformed data, boundary values
Pull Request Guidelines
- Fill out the PR template (auto-generated from
.github/PULL_REQUEST_TEMPLATE.md) - Link related issues with
Fixes #123orCloses #456 - Keep PRs focused โ one feature/fix per PR
- Ensure CI passes (lint + tests + coverage)
- Add screenshots for visual changes
Filing Issues
Use the appropriate issue template:
๐ Bug Report
Steps to reproduce, expected vs actual behavior, environment details.
โจ Feature Request
Use case, proposed solution, alternatives considered.
โก Performance Issue
What's slow, profiling data if available, device info.
โ Question
Architecture questions, usage help, design discussions.