Thank you for contributing! We welcome community contributions and appreciate your support.
- Code of Conduct
- Getting Started
- Development Setup
- How to Contribute
- Coding Standards
- Commit Guidelines
- Pull Requests
- Testing
We're committed to a welcoming community. Please be respectful and constructive.
Expected Behavior: Use inclusive language, respect differing viewpoints, and show empathy.
Unacceptable Behavior: Harassment, discrimination, or sharing private information without consent.
- Flutter SDK 3.32.8+
- Dart SDK 3.8.1+
- Git
- Android Studio, Xcode, or VS Code
- Fork and clone the repository:
git clone https://github.com/YOUR_USERNAME/music_player.git
cd music_player
git remote add upstream https://github.com/Novan-ORG/music_player.git- Install dependencies:
flutter pub get- Create
.envfile:
SENTRY_DSN=your_sentry_dsn_here- Verify setup:
flutter doctor
flutter analyze
flutter testClean Architecture + BLoC Pattern
lib/
├── core/ # Shared functionality
├── features/ # Feature modules
├── injection/ # Dependency injection
├── localization/ # i18n files
└── navigation/ # Routing
Each feature: data/ → domain/ → presentation/
- Check Issues for
good first issueorhelp wanted - Comment to claim an issue
🐛 Bug fixes • ✨ Features • 📝 Documentation • 🎨 UI/UX • ♿ Accessibility • 🌐 Localization • ⚡ Performance • ✅ Tests
git checkout main && git pull upstream main
git checkout -b <type>/<description>Naming: feature/add-equalizer, fix/player-crash, docs/update-readme, refactor/..., test/...
dart format .
flutter analyze
dart fix --applyWe follow Effective Dart.
- Use meaningful names
- Keep functions small (< 20 lines)
- Use constants instead of magic strings
- Handle errors properly
- Use dependency injection
- Write self-documenting code
- Extract complex widgets
Follow Conventional Commits:
<type>(<scope>): <subject>
Types: feat, fix, docs, style, refactor, perf, test, chore, ci, build
Scopes: player, playlist, search, settings, audio, ui, l10n, deps
Examples:
feat(player): add shuffle modefix(playlist): prevent duplicate songs
git pull upstream main
git rebase main
dart format .
flutter analyze
flutter test- Clear description of changes
- Related issue:
Closes #123 - Screenshots for UI changes
- Testing verification
- Checklist: style guide compliance, self-review, tests passing
flutter test # Run all tests
flutter test --coverage # Check coverage (aim for 80%+)Test types: Unit tests, Widget tests, BLoC tests
- Document complex public APIs
- Update README if changes affect installation, config, or features
- Add localization strings to ARB files
This project is licensed under the MIT License. Contributions must comply with this license.
- Issues: For bugs and features
- Discussions: For questions
- PRs: For code review
Thank you for contributing! 🎵✨