Thanks for your interest in contributing! Here's how to get started.
- Ensure you have Flutter 3.11+ installed
- Clone the repo and run
flutter pub get - Generate code:
dart run build_runner build --delete-conflicting-outputs - Run:
flutter run -d macos
- Follow
very_good_analysislint rules - Run
flutter analyzebefore submitting — must have zero issues - Use relative imports within
lib/ - Follow existing clean architecture patterns (data/domain/presentation)
- Keep PRs focused on a single change
- Include tests for new BLoCs and use cases
- Ensure all existing tests pass:
flutter test - Write clear commit messages
Open an issue with:
- Steps to reproduce
- Expected vs actual behavior
- macOS version and Flutter version (
flutter --version)
- New features: Create under
lib/features/<name>/with data, domain, presentation layers - State management: Use BLoC for complex features, Cubit for simple state
- Database: Add new tables in
lib/core/database/tables/, create DAOs indaos/ - API calls: Add GraphQL queries to
graphql_queries.dart, useLeetCodeApiClient