OSINT Hub welcomes contributions from the community. Whether you’re fixing bugs, adding new features, or improving documentation, your contributions are valued.
Getting Started
Before you start contributing, make sure you have:- Python 3.12+
- Git installed on your system
- Familiarity with Django framework
- Understanding of OSINT tools and methodologies
Contribution Workflow
Create a Feature Branch
Create a new branch for your feature or bug fix:Use descriptive branch names:
feature/for new featuresfix/for bug fixesdocs/for documentation updatesrefactor/for code refactoring
Set Up Development Environment
Create and activate a virtual environment:Install dependencies:Set up environment variables:Run migrations:
Make Your Changes
Implement your feature or bug fix following the project’s coding standards:
- Follow Django best practices
- Write clean, readable code
- Add comments for complex logic
- Ensure proper error handling
- Validate user inputs
Test Your Changes
Before submitting, test your changes thoroughly:
- Test all functionality manually
- Verify that existing features still work
- Check for console errors
- Test on different browsers if UI changes
Commit Your Changes
Follow Conventional Commits specification:Commit Message Format:
feat:A new featurefix:A bug fixdocs:Documentation changesstyle:Code style changes (formatting, etc.)refactor:Code refactoringtest:Adding or updating testschore:Maintenance tasks
Code Style Guidelines
Python Code
- Follow PEP 8 style guide
- Use meaningful variable names
- Keep functions small and focused
- Add docstrings to functions and classes
Django Patterns
- Follow Django project structure
- Use class-based views when appropriate
- Implement proper form validation
- Use Django ORM efficiently
Frontend Code
- Use Bootstrap 5 components
- Keep JavaScript modular
- Ensure responsive design
- Follow accessibility standards
Security
- Sanitize all user inputs
- Implement CSRF protection
- Follow OWASP guidelines
- Avoid exposing sensitive data
Adding a New Tool
To add a new OSINT tool to the platform:1. Create a New Django App
2. Structure Your App
Your app should follow this structure:3. Register the App
Add your app toINSTALLED_APPS in osint_hub/settings.py:
4. Add URL Routing
Include your app’s URLs inosint_hub/urls.py:
5. Implement Views
Create views for search and results pages with proper error handling:6. Update Homepage
Add a card for your tool intemplates/includes/cards.html
Testing
While OSINT Hub doesn’t currently have a comprehensive test suite, contributors are encouraged to write tests for new features.
- App-specific tests:
ToolName/tests.py - Integration tests:
test/test_integrations.py
Documentation
If you add new features:- Update the main README.md
- Add inline code comments
- Update relevant documentation pages
- Include usage examples
Security Considerations
Important Security Practices:
- Input Validation: Sanitize all user inputs to prevent injection attacks
- Timeouts: Implement timeouts for external processes (recommended: 60-300s)
- File Uploads: Validate file types and sizes (max 50 MB for EXIF tool)
- Path Traversal: Prevent directory traversal attacks in file operations
- Rate Limiting: Consider rate limiting for intensive operations
- Error Messages: Don’t expose sensitive information in error messages
Security Tools in Use:
- CSRF protection on all forms
- Content Security Policy (CSP)
- HSTS headers in production
- XSS protection
- Clickjacking protection
Code Review Process
When your Pull Request is submitted:- Automated Checks: Code will be checked for style and basic errors
- Manual Review: Maintainers will review your code for:
- Code quality and style
- Security implications
- Performance considerations
- Documentation completeness
- Feedback: You may receive requests for changes
- Approval: Once approved, your PR will be merged
Getting Help
GitHub Issues
Report bugs or request features through GitHub Issues
Contact
Email: [email protected]
GitHub: @nakajito
License
By contributing to OSINT Hub, you agree that your contributions will be licensed under the MIT License.Thank you for contributing to OSINT Hub! Your efforts help make OSINT tools more accessible to everyone.
