-
-
Notifications
You must be signed in to change notification settings - Fork 9
Contributing
This page provides guidelines for contributing to the Cloud-Native E-commerce Platform.
We welcome contributions from everyone! Here are the ways you can contribute:
- Code: Implement new features or fix bugs
- Documentation: Improve or add documentation
- Testing: Add tests or identify bugs
- Ideas: Suggest enhancements or new features
- Reviews: Review pull requests
Before you begin, ensure you have:
- Read the Development Guide
- Set up your development environment
- Familiarized yourself with the Architecture
- Read our Code of Conduct
- Check the Issues page
- Look for issues labeled with:
-
good first issue: Good for newcomers -
help wanted: Issues needing assistance -
bug: Bugs that need fixing -
enhancement: New features or improvements
-
-
Fork the repository
-
Clone your fork:
git clone https://github.com/YOUR-USERNAME/cloud-native-ecommerce-platform.git cd cloud-native-ecommerce-platform -
Add the upstream repository:
git remote add upstream https://github.com/sloweyyy/cloud-native-ecommerce-platform.git
-
Create a branch for your work:
git checkout -b feature/your-feature-name
We follow the GitFlow branching model:
-
main: Production-ready code -
develop: Latest development changes -
feature/*: New features -
bugfix/*: Bug fixes -
release/*: Release preparation -
hotfix/*: Production hotfixes
-
Make your changes following our coding standards
-
Write tests for your changes
-
Ensure all tests pass:
dotnet test -
Update documentation as needed
We use the Conventional Commits specification:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Types:
-
feat: A new feature -
fix: A bug fix -
docs: Documentation changes -
style: Code style changes (formatting, etc.) -
refactor: Code refactoring -
test: Adding or updating tests -
chore: Maintenance tasks
Examples:
feat(catalog): add product search by brand
fix(basket): resolve issue with discount calculation
docs(api): update API documentation
git fetch upstream
git checkout develop
git merge upstream/develop- Ensure your code follows our coding standards
- Run all tests and ensure they pass
- Update documentation if needed
- Rebase your branch on the latest develop branch
-
Push your branch to your fork:
git push origin feature/your-feature-name
-
Go to the repository
-
Click "Compare & pull request"
-
Fill out the PR template with:
- Clear description of changes
- Reference to related issues
- Screenshots if applicable
- Breaking changes if any
- Automated checks must pass (CI)
- At least one maintainer must review and approve
- Address any feedback from reviewers
- Once approved, a maintainer will merge your PR
- Be open to feedback
- Respond to comments promptly
- Explain your reasoning for design decisions
- Break large PRs into smaller ones when possible
- Be respectful and constructive
- Focus on code quality, not style preferences
- Explain your reasoning for requested changes
- Approve once requirements are met
- Use XML comments for public APIs
- Document complex logic with inline comments
- Keep comments up-to-date with code changes
- Update wiki pages for significant changes
- Create new pages for new features or components
- Use clear, concise language
- Include examples where appropriate
- Unit Tests: Test individual components
- Integration Tests: Test component interactions
- End-to-End Tests: Test complete workflows
- Write tests for all new features
- Maintain test coverage for existing code
- Follow the Arrange-Act-Assert pattern
- Use meaningful test names
- GitHub Issues: For bugs and feature requests
- GitHub Discussions: For questions and ideas
- Pull Requests: For code reviews and contributions
If you need help with your contribution:
- Check the wiki
- Search existing issues
- Ask in GitHub Discussions
Contributors will be recognized in:
- The Contributors page
- Release notes for significant contributions
- Special acknowledgments for major contributions
Thank you for contributing to the Cloud-Native E-commerce Platform! Your efforts help make this project better for everyone.