Thank you for your interest in contributing to LAN-IOT! This document provides guidelines for contributing to the project.
By participating in this project, you agree to maintain a respectful and collaborative environment.
- Check if the issue already exists in the issue tracker
- Provide a clear description of the problem
- Include steps to reproduce the issue
- Specify your environment (ESP-IDF version, hardware, OS)
- Include relevant log output
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name
- Make your changes:
- Follow the existing code style
- Add comments for complex logic
- Test your changes thoroughly
- Commit your changes:
Use conventional commit messages:
git commit -m "Add: brief description of changes"Add:for new featuresFix:for bug fixesUpdate:for improvementsDocs:for documentation changes
- Push to your fork:
git push origin feature/your-feature-name
- Create a Pull Request
- Provide a clear description of the changes
- Reference any related issues
- Ensure all tests pass
- Update documentation if needed
- Keep changes focused and atomic
- ESP-IDF v5.5.1
- ESP32-S3 development board
- Git
-
Clone the repository:
git clone https://github.com/your-username/lan-iot.git cd lan-iot -
Set up ESP-IDF:
. $HOME/esp/esp-idf/export.sh
-
Create your configuration:
cp main/app_config.h.bak main/app_config.h # Edit main/app_config.h with your settings -
Build the project:
idf.py build
- Use 4 spaces for indentation (no tabs)
- Follow ESP-IDF coding style
- Use descriptive variable and function names
- Add comments for complex logic
- Keep functions focused and small
snake_casefor functions and variablesUPPER_CASEfor constants and macros- Prefix static functions with
s_or make them static
- Use
//for single-line comments - Use
/* */for multi-line comments - Document public APIs with descriptive comments
Before submitting a pull request:
-
Build the project without warnings:
idf.py build
-
Test on actual hardware if possible
-
Verify basic functionality:
- WiFi connection
- Certificate acquisition
- HTTPS server operation
- WSS/TCP services
- Update README.md if adding new features
- Add inline code documentation
- Update configuration examples if needed
DO NOT open public issues for security vulnerabilities.
Instead, please email security concerns privately to the maintainers.
- Never commit secrets, tokens, or credentials
- Use
app_config.h.bakas a template only - Ensure
main/app_config.his in.gitignore
We welcome contributions in the following areas:
- Additional service protocols (MQTT, CoAP, etc.)
- Enhanced monitoring and metrics
- Power management improvements
- OTA update support
- Usage examples
- Deployment guides
- Troubleshooting tips
- Architecture diagrams
- Unit tests
- Integration tests
- Hardware compatibility testing
- Check the issue tracker for open bugs
- Verify and fix reported issues
By contributing to LAN-IOT, you agree that your contributions will be licensed under the Apache License 2.0.
If you have questions about contributing, feel free to:
- Open a discussion in the repository
- Ask in the issues section (for general questions)
- Check existing documentation
Contributors will be recognized in the project documentation and release notes.
Thank you for contributing to LAN-IOT! 🎉