Repository navigation
Contributing
Iyotee edited this page Aug 24, 2025
·
1 revision
Thank you for your interest in contributing to DHCP Monitor! This guide will help you get started with contributing to the project.
- Bug Fixes: Fix issues and bugs
- New Features: Add new functionality
- Improvements: Enhance existing features
- Performance: Optimize code performance
- Documentation: Improve code documentation
- Documentation: Update wiki, README, or code comments
- Bug Reports: Report issues you find
- Feature Requests: Suggest new features
- Testing: Test the application and report findings
- Community: Help other users in discussions
- Localization: Translate interface to other languages
- Documentation: Translate documentation
- Help Content: Translate help and tutorials
- Git: Version control system
- Node.js: JavaScript runtime (v18+)
- Rust: Programming language (v1.70+)
- Code Editor: VS Code, IntelliJ, or similar
- Frontend: React, TypeScript, Tailwind CSS
- Backend: Rust, Tauri framework
- Networking: DHCP protocol, packet capture
- Git: Basic Git operations and workflow
- Go to DHCP Monitor GitHub
- Click "Fork" button in the top right
- Clone your fork to your local machine
git clone https://github.com/YOUR_USERNAME/DHCPMonitor.git
cd DHCPMonitorgit remote add upstream https://github.com/iyotee/DHCPMonitor.git
git fetch upstream# Install Node.js dependencies
npm install
# Install Rust dependencies
cargo build# Test the application
npm run devfeature/feature-name # New features
bugfix/bug-description # Bug fixes
improvement/improvement-name # Improvements
docs/documentation-update # Documentation changes
# Update main branch
git checkout main
git pull upstream main
# Create feature branch
git checkout -b feature/your-feature-name
# Make your changes
# ... edit files ...
# Commit changes
git add .
git commit -m "Add feature: description of your feature"
# Push to your fork
git push origin feature/your-feature-name- Follow Rust Style Guide
- Use
cargo fmtto format code - Use
cargo clippyfor linting - Add proper error handling
- Include unit tests for new functionality
- Follow TypeScript Style Guide
- Use ESLint and Prettier
- Follow React best practices
- Use TypeScript strictly
- Include proper type definitions
- Code Comments: Add clear, helpful comments
- Error Handling: Implement proper error handling
- Testing: Write tests for new code
- Documentation: Update relevant documentation
- Performance: Consider performance implications
# Frontend tests
npm test
# Backend tests
cargo test
# Integration tests
npm run test:integration- Unit Tests: Test individual functions and components
- Integration Tests: Test component interactions
- End-to-End Tests: Test complete user workflows
- Performance Tests: Test performance characteristics
- Check Issues: Look for existing issues or discussions
- Discuss: Comment on issues to discuss approach
- Plan: Plan your implementation approach
- Scope: Keep changes focused and manageable
- Follow Standards: Adhere to coding standards
- Test Regularly: Test your changes frequently
- Document: Update documentation as needed
- Commit Often: Make small, focused commits
- Test Thoroughly: Ensure all tests pass
- Self-Review: Review your own code
- Update Docs: Update relevant documentation
- Prepare PR: Get ready for pull request
- Accuracy: Ensure information is accurate and current
- Clarity: Write clear, understandable content
- Examples: Include practical examples
- Structure: Follow existing wiki structure
- API Docs: Document public APIs
- Code Comments: Add helpful inline comments
- README Updates: Update project README as needed
- Change Logs: Document significant changes
# Ensure your branch is up to date
git checkout main
git pull upstream main
git checkout feature/your-feature-name
git rebase main
# Push any rebase changes
git push origin feature/your-feature-name --force-with-lease- Go to your fork on GitHub
- Click "Compare & pull request"
- Fill out PR template
- Add appropriate labels
- Request review from maintainers
## Description
Brief description of what this PR does
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Testing
- [ ] Unit tests pass
- [ ] Integration tests pass
- [ ] Manual testing completed
## Checklist
- [ ] Code follows style guidelines
- [ ] Self-review completed
- [ ] Documentation updated
- [ ] Tests added/updated
## Screenshots (if applicable)
Add screenshots for UI changes
## Additional Notes
Any additional information- Automated Checks: CI/CD pipeline runs tests
- Code Review: Maintainers review your code
- Feedback: Address any feedback or requested changes
- Approval: PR gets approved and merged
- Be Responsive: Respond to review comments promptly
- Be Open: Be open to suggestions and improvements
- Make Changes: Implement requested changes
- Ask Questions: Ask for clarification if needed
## Bug Description
Clear description of the bug
## Steps to Reproduce
1. Step 1
2. Step 2
3. Step 3
## Expected Behavior
What should happen
## Actual Behavior
What actually happens
## Environment
- OS: [e.g., Windows 11, Ubuntu 20.04]
- Version: [e.g., 1.1.37]
- Architecture: [e.g., x64]
## Additional Information
- Screenshots
- Error messages
- Log files
- Related issues- GitHub Issues: Use GitHub issue tracker
- Bug Reports: Use "Bug" issue template
- Security Issues: Report security issues privately
## Feature Description
Clear description of the requested feature
## Use Case
Why this feature is needed
## Proposed Solution
How you think it should work
## Alternatives Considered
Other approaches you considered
## Additional Context
Any other relevant information- Search First: Check if feature already requested
- Discuss: Engage in community discussions
- Provide Details: Give comprehensive information
- Be Patient: Understand development priorities
- bug: Something isn't working
- enhancement: New feature or request
- documentation: Improvements to documentation
- good first issue: Good for newcomers
- help wanted: Extra attention needed
- high: High priority issue
- medium: Medium priority issue
- low: Low priority issue
- in progress: Being worked on
- blocked: Blocked by other issues
- duplicate: Issue already exists
- invalid: Issue not valid
- wontfix: Will not be fixed
- This Wiki: Comprehensive project documentation
- Code Comments: Inline code documentation
- API Reference: Technical API documentation
- Examples: Code examples and samples
- GitHub Discussions: Community discussions
- Issue Tracker: Browse existing issues
- Pull Requests: Review recent changes
- Contributors: Connect with other contributors
- Rust Book: Learn Rust programming
- React Docs: Learn React development
- Tauri Docs: Learn Tauri framework
- Network Protocols: Learn about DHCP and networking
- GitHub Contributors: Automatic contributor listing
- Release Notes: Credit in release documentation
- Contributor Hall of Fame: Special recognition for significant contributions
- First Contribution: Welcome new contributors
- Regular Contributor: Consistent contributions
- Core Contributor: Significant project impact
- Maintainer: Project leadership role
- Read this contributing guide
- Understand project goals and scope
- Set up development environment
- Familiarize with codebase
- Follow coding standards
- Write tests for new code
- Update documentation
- Test your changes thoroughly
- Submit pull request
- Respond to review feedback
- Celebrate your contribution!
- Stay engaged with the community
Ready to contribute?
- Start Small: Begin with documentation or simple bug fixes
- Join Community: Participate in discussions
- Ask Questions: Don't hesitate to ask for help
- Be Patient: Learning and contributing takes time
- GitHub Issues: For bug reports and feature requests
- GitHub Discussions: For questions and community discussion
- Maintainers: Direct contact for important matters
- Be Respectful: Treat others with respect
- Be Helpful: Help other contributors
- Be Patient: Understand different skill levels
- Be Inclusive: Welcome contributors from all backgrounds
Thank you for contributing to DHCP Monitor! π
Your contributions help make this project better for everyone in the networking community.