Thank you for your interest in contributing! This document provides guidelines for contributing to the project.
- Be respectful and inclusive
- Provide constructive feedback
- Focus on the code, not the person
- Help others learn and grow
- Check if the bug is already reported
- Provide clear, reproducible steps
- Include system information (OS, Python version, etc.)
- Attach relevant logs or screenshots
- Check if the feature is already suggested
- Explain the use case and benefit
- Provide examples if possible
- Be open to discussion and refinement
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Follow the code style (PEP 8)
- Add tests and documentation
- Submit a pull request with clear description
# Clone the repository
git clone https://github.com/yourusername/netlens.git
cd netlens
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run tests
pytest
# Run the dashboard
sudo ./.venv/bin/streamlit run dashboard.py- Follow PEP 8
- Use type hints
- Write comprehensive docstrings
- Maximum line length: 100 characters
ClassNamefor classesfunction_name()for functionsCONSTANT_NAMEfor constants_private_method()for private methods
- Add docstrings to all functions
- Use Google-style docstrings
- Include examples in docstrings
- Update README.md for user-facing changes
# Run all tests
pytest
# Run specific test file
pytest tests/test_packet_processor.py
# Run with coverage
pytest --cov=srcWrite clear, descriptive commit messages:
Add feature: Device filtering in dashboard
- Implement device selection dropdown
- Add per-device filtering logic
- Update UI components
- Add unit tests
- Update documentation
- Add tests for new features
- Ensure all tests pass:
pytest - Keep PR focused on one feature/fix
- Write clear PR description
- Link related issues
- Performance optimization
- Additional network protocols
- Geolocation mapping
- Anomaly detection
- Database integration
- Dark mode UI
- Export capabilities (CSV, JSON)
- Alert system
- Custom dashboards
- API endpoint
- Additional visualizations
- Documentation improvements
- Code optimization
- Error handling enhancements
- Open an issue for discussion
- Check existing documentation
- Review past issues and PRs
- Ask in the community
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for making NetLens better! 🎉