We love your input! We want to make contributing to ApWifi as easy and transparent as possible, whether it's:
- 🐛 Reporting bugs
- 🚀 Proposing new features
- 💡 Discussing the current state of the code
- 🔧 Submitting fixes or improvements
- 🌍 Adding translations
- 📖 Improving documentation
Found a bug? Please help us fix it!
Before reporting:
- Check if the issue already exists in Issues
- Test on the latest version
- Gather relevant information (OS, .NET version, hardware)
Report template:
**Environment:**
- Raspberry Pi Model:
- OS Version:
- .NET Version:
- ApWifi Version:
**Bug Description:**
A clear description of what the bug is.
**Steps to Reproduce:**
1. Go to '...'
2. Click on '....'
3. See error
**Expected Behavior:**
What you expected to happen.
**Screenshots:**
If applicable, add screenshots.Have an idea for improvement?
Consider:
- Is this feature useful for most users?
- Does it align with the project goals?
- Can it be implemented without breaking existing functionality?
Help make ApWifi accessible worldwide!
Currently supported languages:
- 🇺🇸 English (en-US)
- 🇨🇳 Chinese (zh-CN)
- 🇩🇪 German (de-DE)
- 🇫🇷 French (fr-FR)
- 🇯🇵 Japanese (ja-JP)
To add a new language:
- Create
Strings.[locale].jsoninApWifi.App/Resources/ - Translate all strings from
Strings.en-US.json - Test the interface with your translation
- Submit a pull request
Help others use and contribute to ApWifi!
Areas that need help:
- API documentation
- Tutorial improvements
- Code examples
- Troubleshooting guides
- .NET 10 SDK
- Git
- (Optional) Raspberry Pi 5 for hardware testing
-
Fork the repository
git clone https://github.com/YOUR_USERNAME/PiWiFiAP.git cd PiWiFiAP -
Create a feature branch
git checkout -b feature/your-feature-name
-
Install dependencies
dotnet restore
-
Build the project
dotnet build
-
Run tests
dotnet test -
Start development
dotnet run --project ApWifi.App
- ✅ Code builds without warnings
- ✅ All tests pass
- ✅ Code follows project style
- ✅ Documentation updated if needed
- ✅ Screenshots added for UI changes
## Description
Brief description of changes.
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Testing
- [ ] Tested on development environment
- [ ] Tested on Raspberry Pi hardware
- [ ] All existing tests pass
- [ ] New tests added if applicable
## Screenshots
Include screenshots for UI changes.
## Checklist
- [ ] Code follows project style guidelines
- [ ] Self-review completed
- [ ] Documentation updated
- [ ] No new warnings introduced- Use PascalCase for public members
- Use camelCase for private fields
- Use meaningful variable names
- Add XML documentation for public APIs
- Follow async/await best practices
/// <summary>
/// Configures WiFi settings on the system
/// </summary>
/// <param name="ssid">Network SSID</param>
/// <param name="password">Network password</param>
/// <returns>True if configuration was successful</returns>
public async Task<bool> ConfigureWiFiAsync(string ssid, string password)
{
// Implementation
}- One class per file
- Organize using statements
- Group related functionality
- Use appropriate namespaces
- Test business logic thoroughly
- Mock external dependencies
- Use descriptive test names
- Follow AAA pattern (Arrange, Act, Assert)
- Test on actual hardware when possible
- Verify network functionality
- Test multi-language support
- Validate system integration
We use Semantic Versioning:
- MAJOR: Breaking changes
- MINOR: New features (backward compatible)
- PATCH: Bug fixes
- Version number updated
- CHANGELOG.md updated
- Documentation reviewed
- Hardware testing completed
- Release notes prepared
Contributors are recognized in:
- GitHub contributors list
- README.md acknowledgments
- Release notes
- Project documentation
Stuck? Need guidance?
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for helping make ApWifi better! 🎉
Every contribution, no matter how small, makes a difference