Thank you for your interest in contributing to the Aetriks project. This document provides guidelines and information for contributors.
- Code of Conduct
- Getting Started
- Development Setup
- Code Standards
- Testing Guidelines
- Pull Request Process
- Issue Reporting
- Security Considerations
This project is committed to providing a welcoming and inclusive environment for all contributors. By participating in this project, you agree to:
- Be respectful and considerate of others
- Focus on constructive feedback and discussions
- Follow the project's coding standards and guidelines
- Maintain the educational and research-focused nature of the project
Before contributing, please ensure you understand the project's purpose and scope:
- This is an educational cybersecurity research project
- All contributions must maintain the educational focus
- Code should be well-documented and maintainable
- Security best practices must be followed
- Python 3.7 or higher
- Java 17 or higher
- Maven 3.6 or higher
- Git
-
Fork the repository to your GitHub account
-
Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/aetriks-relay.git cd aetriks-relay -
Set up the development environment:
# Install Python dependencies pip install -r keylogger/requirements.txt # Build the relay server cd relay-server mvn clean install cd ..
-
Create a feature branch:
git checkout -b feature/your-feature-name
- Write clear, readable, and maintainable code
- Follow the existing code style and conventions
- Add comprehensive comments for complex logic
- Include proper error handling
- Write self-documenting code with meaningful variable names
- Follow PEP 8 style guidelines
- Use type hints where appropriate
- Include docstrings for all functions and classes
- Handle exceptions gracefully
- Use meaningful variable and function names
- Follow Google Java Style Guide
- Use meaningful class and method names
- Include JavaDoc comments for public methods
- Handle exceptions appropriately
- Use proper access modifiers
- Update relevant documentation for any changes
- Include examples in documentation
- Keep setup instructions current
- Document any new configuration options
- Write unit tests for new functionality
- Ensure existing tests pass before submitting changes
- Aim for good test coverage
- Use descriptive test names
- Test the complete workflow (keylogger to server)
- Verify data transmission and logging
- Test error conditions and edge cases
- Validate configuration changes
- Test on both Windows and Linux systems
- Verify build processes work correctly
- Test deployment scenarios
- Validate security features
- Ensure your code follows the project's standards
- Run all tests and verify they pass
- Update documentation as needed
- Test your changes thoroughly
- Use a clear and descriptive title
- Provide a detailed description of changes
- Include any relevant issue numbers
- List any breaking changes or new dependencies
- Add screenshots or examples if applicable
- All pull requests require review
- Address feedback and requested changes
- Ensure CI/CD checks pass
- Maintain a professional and constructive tone
When reporting bugs, please include:
- Clear description of the issue
- Steps to reproduce the problem
- Expected vs actual behavior
- System information (OS, versions, etc.)
- Relevant logs or error messages
For feature requests, please include:
- Detailed description of the feature
- Use case and benefits
- Implementation suggestions if applicable
- Priority level
For security-related issues:
- Report privately to the maintainers
- Provide detailed technical information
- Include potential impact assessment
- Suggest mitigation strategies
- Follow secure coding practices
- Validate all inputs
- Use secure communication protocols
- Implement proper authentication where needed
- Avoid hardcoding sensitive information
- Test security features thoroughly
- Verify data protection measures
- Test access controls
- Validate encryption implementations
- Document security requirements
- Provide secure configuration examples
- Include security best practices
- Warn about potential risks
- GitHub Issues for bug reports and feature requests
- GitHub Discussions for general questions
- Pull request comments for code review discussions
- We aim to respond to issues within 48 hours
- Pull request reviews typically within 1 week
- Security issues are prioritized for immediate attention
Contributors will be recognized in the following ways:
- Listed in the project's contributors section
- Mentioned in release notes for significant contributions
- Acknowledged in documentation updates
If you have questions about contributing:
- Check existing documentation first
- Search existing issues and discussions
- Create a new issue for clarification
- Contact maintainers for complex questions
Thank you for contributing to the Aetriks project. Your contributions help make this educational tool more valuable for the cybersecurity community.