contribute via pulling your utilities that hep others to push the movement
Welcome to the utilities repository of Project Iran. This repository contains standalone utility modules that support the broader Project Iran ecosystem.
- About
- Repository Structure
- Getting Started
- Contributing
- Security Policy
- Best Practices
- Pull Request Process
- Code of Conduct
- License
This utilities repository is part of Project Iran, an open-source initiative. Each sub-repository within utilities is designed to be standalone and independently functional, allowing developers to use individual modules without dependencies on other parts of the project.
π¨ DISCLAIMER
Be careful, Your Security and Users' Security is most important
Security is a critical concern in this project. Always review code carefully, keep dependencies updated, follow security best practices, and report vulnerabilities responsibly.
utilities/
βββ module-1/ # Standalone utility module
β βββ src/
β βββ tests/
β βββ README.md
β βββ package.json
βββ module-2/ # Standalone utility module
β βββ src/
β βββ tests/
β βββ README.md
β βββ package.json
βββ ...
Each sub-repository contains:
- Source code (
src/) - Tests (
tests/) - Documentation (
README.md) - Dependencies (package manager configuration)
- Node.js (v16 or higher) / Python (3.8+) / [Specify your requirements]
- Git
- Package manager (npm, yarn, pip, etc.)
Clone the repository:
git clone https://github.com/[organization]/project-iran-utilities.git
cd project-iran-utilitiesNavigate to the specific utility module you want to use:
cd module-name
npm install # or pip install -r requirements.txtEach module is standalone. Refer to the individual module's README for specific usage instructions.
We welcome contributions from the community! Please read our contributing guidelines carefully before submitting any pull requests.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Write or update tests
- Ensure all tests pass
- Run security checks
- Commit your changes (
git commit -m 'Add amazing feature') - Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request
Any contribution found to contain the following will result in permanent ban from the project:
- Backdoors - Any intentional security vulnerability or hidden access mechanism
- Critical security issues - Including but not limited to:
- Remote code execution vulnerabilities
- SQL injection vulnerabilities
- Authentication bypasses
- Privilege escalation exploits
- Data exfiltration mechanisms
- Malicious code or logic bombs
- Intentional dependency vulnerabilities
If you discover a security vulnerability, please follow responsible disclosure:
- DO NOT open a public issue
- Email security@[organization].com with details
- Allow up to 90 days for patching before public disclosure
- We will credit you in our security advisories (unless you prefer anonymity)
All contributors must adhere to the following best practices:
- Write clean, readable code following the project's style guide
- Document your code with clear comments and docstrings
- Follow naming conventions consistent with the existing codebase
- Keep functions small and focused (single responsibility principle)
- Avoid code duplication (DRY principle)
- Write comprehensive tests for all new features
- Maintain minimum 80% code coverage
- Include unit tests, integration tests, and edge cases
- All tests must pass before submitting a PR
- Test both success and failure scenarios
- Never commit secrets, API keys, or credentials
- Use environment variables for configuration
- Validate and sanitize all inputs
- Keep dependencies up-to-date
- Run security scanners before submitting (npm audit, safety, etc.)
- Follow OWASP security guidelines
- Update README files when adding features
- Document API changes with examples
- Include inline comments for complex logic
- Provide usage examples in documentation
- Keep documentation in sync with code
- Write meaningful commit messages (use conventional commits)
- Keep commits atomic (one logical change per commit)
- Rebase and squash commits when appropriate
- Don't commit commented-out code
- Don't commit build artifacts or dependencies
- Minimize external dependencies
- Use only well-maintained, reputable packages
- Pin dependency versions in production
- Document why each dependency is needed
- Regularly audit and update dependencies
- Optimize for performance without sacrificing readability
- Avoid premature optimization
- Profile code for performance bottlenecks
- Consider memory usage and scalability
- Fork the repository and create your branch from
main - Follow the coding standards outlined in CONTRIBUTING.md
- Write or update tests for your changes
- Run the full test suite and ensure all tests pass
- Run security checks (linters, SAST tools, dependency audits)
- Update documentation as needed
- Ensure your code is properly formatted
Your pull request must include:
- Clear description of what changes were made and why
- Issue reference if applicable (e.g., "Fixes #123")
- Test results demonstrating your changes work
- Documentation updates if you changed functionality
- Changelog entry if applicable
- Submit your PR with a comprehensive description
- Organization admins will review your submission
- Address feedback promptly and professionally
- Make requested changes and update your PR
- Approval required from at least one admin before merge
- CI/CD checks must pass (tests, linting, security scans)
- Code quality and adherence to best practices
- Comprehensive test coverage
- Security considerations
- Documentation completeness
- Performance implications
- Backward compatibility
- Be respectful and inclusive
- Be collaborative and helpful
- Be professional in all interactions
- Focus on what's best for the community
- Show empathy towards other contributors
- Harassment or discriminatory language
- Trolling or inflammatory comments
- Personal attacks
- Publishing others' private information
- Any form of malicious conduct
This project is licensed under the MIT License - see the LICENSE file for details.
Thank you to all contributors who help make Project Iran better!
Note: By contributing to this project, you agree to abide by its terms and our security policy. We take security seriously and maintain a zero-tolerance policy for malicious contributions.