π€ Contributing to ApWifi
April 1, 2026 Β· View on GitHub
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
π― Ways to Contribute
π Bug Reports
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.
π Feature Requests
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?
π Translations
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
π Documentation
Help others use and contribute to ApWifi!
Areas that need help:
- API documentation
- Tutorial improvements
- Code examples
- Troubleshooting guides
π§ Development Setup
Prerequisites
- .NET 10 SDK
- Git
- (Optional) Raspberry Pi 5 for hardware testing
Setup Steps
-
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
π Pull Request Process
Before Submitting
- β Code builds without warnings
- β All tests pass
- β Code follows project style
- β Documentation updated if needed
- β Screenshots added for UI changes
PR Template
## 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
π¨ Code Style Guidelines
C# Conventions
- 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
Example:
/// <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
}
File Organization
- One class per file
- Organize using statements
- Group related functionality
- Use appropriate namespaces
π§ͺ Testing Guidelines
Unit Tests
- Test business logic thoroughly
- Mock external dependencies
- Use descriptive test names
- Follow AAA pattern (Arrange, Act, Assert)
Integration Tests
- Test on actual hardware when possible
- Verify network functionality
- Test multi-language support
- Validate system integration
π¦ Release Process
Version Numbering
We use Semantic Versioning:
- MAJOR: Breaking changes
- MINOR: New features (backward compatible)
- PATCH: Bug fixes
Release Checklist
- Version number updated
- CHANGELOG.md updated
- Documentation reviewed
- Hardware testing completed
- Release notes prepared
π Recognition
Contributors are recognized in:
- GitHub contributors list
- README.md acknowledgments
- Release notes
- Project documentation
π¬ Getting Help
Stuck? Need guidance?
- π¬ Start a Discussion
- π§ Email the maintainers
- π Open an Issue
π License
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