Thank you for your interest in contributing! This document provides guidelines for contributing to the project.
- Code of Conduct
- How to Contribute
- Development Setup
- Coding Standards
- Security Considerations
- Pull Request Process
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
- Follow the project's guidelines
- Check if the bug is already reported in Issues
- Create a new issue with:
- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- Firmware version and hardware details
- Logs or screenshots if applicable
- Check Discussions for similar ideas
- Create a new discussion with:
- Clear description of the feature
- Use cases and benefits
- Potential implementation approach
- Any security implications
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Test thoroughly
- Commit with clear messages
- Push to your fork
- Open a Pull Request
- PlatformIO IDE
- LILYGO® T-Display ESP32 or T-Display-S3 board
- Git for version control
# Clone your fork
git clone https://github.com/YOUR_USERNAME/SecureGen.git
cd SecureGen
# Add upstream remote
git remote add upstream https://github.com/makepkg/SecureGen.git
# Install dependencies (PlatformIO handles this automatically)
pio lib install
# Build the project for your board
# For T-Display ESP32:
pio run -e lilygo-t-display
# For T-Display-S3:
pio run -e lilygo-t-display-s3
# Upload to device
# For T-Display ESP32:
pio run -e lilygo-t-display -t upload
# For T-Display-S3:
pio run -e lilygo-t-display-s3 -t upload- Use 4 spaces for indentation (no tabs)
- Follow existing code style
- Use meaningful variable names
- Add comments for complex logic
- Keep functions focused and small
src/ - Source files (.cpp)
include/ - Header files (.h)
lib/ - External libraries
docs/ - Documentation
test/ - Test files
- Classes:
PascalCase(e.g.,CryptoManager) - Functions:
camelCase(e.g.,encryptData) - Variables:
camelCase(e.g.,sessionKey) - Constants:
UPPER_SNAKE_CASE(e.g.,MAX_SESSIONS) - Private members:
_camelCase(e.g.,_deviceKey)
// Single line comment for brief explanations
/**
* Multi-line comment for function documentation
* @param data Input data to process
* @return Processed result
*/- Passwords or API keys
- Private keys or certificates
- Personal data or credentials
- Internal security documentation
- Review security implications of changes
- Test cryptographic code thoroughly
- Follow secure coding practices
- Document security-related changes
When modifying these areas, extra care is required:
src/crypto_manager.cpp- Cryptographic operationssrc/secure_layer_manager.cpp- Web securitysrc/web_admin_manager.cpp- Authenticationsrc/pin_manager.cpp- PIN managementsrc/ble_keyboard_manager.cpp- BLE security
- Test with different scenarios
- Verify no data leakage
- Check for timing attacks
- Validate input sanitization
- Test error handling
- Code compiles without errors
- Tested on actual hardware
- No security vulnerabilities introduced
- Documentation updated if needed
- Commit messages are clear
- Code follows project style
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Testing
How was this tested?
## Checklist
- [ ] Code compiles
- [ ] Tested on hardware
- [ ] Documentation updated
- [ ] No security issues- Maintainer reviews the PR
- Feedback is provided if needed
- Make requested changes
- PR is approved and merged
- You're credited in release notes!
- New features added
- Behavior changes
- API modifications
- Security updates
- Bug fixes affecting usage
README.md- Main project documentationdocs/- Detailed documentation- Code comments - Inline documentation
- Commit messages - Change documentation
- Build and upload firmware
- Test affected functionality
- Verify no regressions
- Test edge cases
- Check error handling
- Device boots correctly
- WiFi connection works
- Web interface accessible
- TOTP codes generate correctly
- Password manager functions
- BLE transmission works
- PIN protection works
- Factory reset works
- Open a Discussion
- Check existing Issues
- Read the Documentation
Contributors are recognized in:
- Release notes
- GitHub contributors page
- Project acknowledgments
Thank you for contributing! 🎉