Thank you for your interest in contributing to OTG-TAK! This document provides guidelines and instructions for contributing.
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
- Maintain professional communication
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR-USERNAME/otg-tak.git - Create a branch:
git checkout -b feature/your-feature-name - Make your changes
- Test thoroughly
- Submit a pull request
- Python 3.11+
- Node.js 18+
- Docker and Docker Compose
- Git
# Clone the repository
git clone https://github.com/cywf/otg-tak.git
cd otg-tak
# Backend setup
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r ../requirements.txt
uvicorn main:app --reload
# Frontend setup (in another terminal)
cd frontend
npm install
npm run devotg-tak/
├── backend/ # FastAPI backend
│ ├── app/
│ │ ├── api/ # API endpoints
│ │ ├── core/ # Core configuration
│ │ ├── models/ # Database models
│ │ └── services/ # Business logic
│ └── main.py
├── frontend/ # React frontend
│ └── src/
│ ├── components/
│ ├── pages/
│ └── services/
├── ansible/ # Ansible playbooks
├── terraform/ # Terraform modules
└── docs/ # Documentation
- Follow PEP 8 style guide
- Use type hints
- Write docstrings for functions and classes
- Maximum line length: 100 characters
def create_deployment(deployment_id: int, config: Dict[str, Any]) -> bool:
"""
Create a new deployment with the specified configuration.
Args:
deployment_id: Unique identifier for the deployment
config: Deployment configuration dictionary
Returns:
bool: True if deployment created successfully
"""
pass- Use ES6+ features
- Follow Airbnb JavaScript Style Guide
- Use functional components with hooks
- Prop validation with PropTypes or TypeScript
import React, { useState, useEffect } from 'react'
function DeploymentCard({ deployment }) {
const [status, setStatus] = useState('pending')
useEffect(() => {
fetchStatus()
}, [deployment.id])
return (
<div className="card">
{/* Component content */}
</div>
)
}
export default DeploymentCard- Use YAML format with 2-space indentation
- Include task names
- Use variables for configurable values
- Add comments for complex tasks
- Use consistent naming conventions
- Add descriptions to variables
- Include outputs for important values
- Use modules for reusable components
cd backend
pytest tests/cd frontend
npm testdocker-compose up -d
./scripts/run-integration-tests.sh- Update Documentation: Ensure README and other docs reflect your changes
- Add Tests: Include tests for new features
- Follow Standards: Adhere to coding standards
- Clean Commits: Use clear, descriptive commit messages
- Update Changelog: Add entry to CHANGELOG.md
type(scope): subject
body
footer
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting)refactor: Code refactoringtest: Adding/updating testschore: Maintenance tasks
Example:
feat(api): add POI batch delete endpoint
Add new endpoint to delete multiple POIs at once.
Includes validation and error handling.
Closes #123
- Check existing issues for duplicates
- Open a new issue with "Feature Request" label
- Provide clear description and use cases
- Discuss with maintainers before implementing
Include:
- Description of the bug
- Steps to reproduce
- Expected behavior
- Actual behavior
- Screenshots (if applicable)
- Environment details (OS, Python/Node version, etc.)
Do not open public issues for security vulnerabilities.
Email security@otg-tak.example.com with:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
- Additional TAK server configurations
- More comprehensive tests
- Performance optimizations
- Documentation improvements
- Additional cloud providers (Azure, GCP)
- Advanced route planning algorithms
- Enhanced security features
- Mobile app for dashboard
- Tutorial videos
- More examples
- Translations
- Architecture diagrams
- Issue Assignment: Comment on issue to request assignment
- Branch Creation: Create feature branch from
main - Development: Make changes with regular commits
- Testing: Ensure all tests pass
- Documentation: Update relevant docs
- Pull Request: Submit PR with clear description
- Code Review: Address reviewer feedback
- Merge: Maintainer merges after approval
- Open a discussion on GitHub
- Join our community chat
- Email: dev@otg-tak.example.com
By contributing, you agree that your contributions will be licensed under the same license as the project (MIT License).
Contributors will be listed in:
- README.md Contributors section
- CHANGELOG.md for specific contributions
- Release notes
Thank you for contributing to OTG-TAK!