Thanks for your interest in contributing! This guide covers how to get started.
- Fork the repository
- Clone your fork:
git clone https://github.com/BigBill1418/DroneOpsCommand.git - Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes
- Test locally with Docker Compose (see below)
- Commit and push to your fork
- Open a Pull Request against
main
cp .env.example .env
# Edit .env with your settings
docker compose up -dThe app will be available at http://localhost:3080.
cd frontend
npm install
npm run devVite dev server runs on http://localhost:5173 and proxies API calls to the backend.
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reloadRequires PostgreSQL and Redis running (easiest via docker compose up db redis -d).
- Backend: Python with type hints. FastAPI async endpoints. SQLAlchemy 2.0 async ORM.
- Frontend: TypeScript, React 18, Mantine UI v7. Dark theme with cyan accents.
- Fonts: Bebas Neue for headings, Share Tech Mono for data/monospace, Rajdhani for general UI.
- Commit messages: Short summary line, optional detail paragraph.
- Check the Issues tab for open bugs and feature requests
- Items in the Roadmap section of the README
- Bug fixes and documentation improvements are always welcome
- Keep PRs focused — one feature or fix per PR
- Include a description of what changed and why
- Test your changes locally before submitting
- Update the README if your change adds new configuration or features
| Service | Tech | Purpose |
|---|---|---|
| Frontend | React 18 + Vite + Mantine UI v7 | SPA web interface |
| Backend | FastAPI + SQLAlchemy 2.0 (async) | REST API |
| Database | PostgreSQL 16 | Persistent storage |
| Flight Parser | Python microservice | DJI flight log decryption |
| LLM | Ollama (Qwen 2.5 3B) or Claude API | AI report generation |
| Queue | Redis 7 + Celery | Async task processing |
Open an issue with:
- Steps to reproduce
- Expected vs actual behavior
- Docker Compose logs if applicable (
docker compose logs backend)
By contributing, you agree that your contributions will be licensed under the MIT License.