How akrayi/gcs-drone-control works
GCS Drone Control is a simulator ground-control station for multiple operators sharing one drone state. Operators sign in, view synchronized telemetry and command history, issue flight or safety commands, and admins manage accounts. The API authenticates and authorizes requests, then serializes state changes and command receipts in PostgreSQL; OPA supplies policy decisions. The graph focuses on runtime product behavior, not deployment or CI. Some frontend wiring is only partially excerpted, so the AdminPanel connection is marked unverified.
Main entry points: App.jsx Dashboard app · main.py HTTP and WebSocket API · service.py Command and snapshots · security.py Authentication and policy
Components 12
Operator dashboard
- Dashboard app
frontend/src/App.jsx - Sign-in form
frontend/src/components/Login.jsx - Flight map
frontend/src/components/FlightMap.jsx - Account management
frontend/src/components/AdminPanel.jsx
API and identity
- HTTP and WebSocket API
backend/app/main.py - Authentication and policy
backend/app/security.py
Flight simulation
- Command and snapshots
backend/app/service.py - Flight transitions
backend/app/domain.py
Policy and storage
- Persistent models
backend/app/db.py - PostgreSQL
- OPA policy
policy/authz.rego
Other components
- Operators
Connections 15
- Operators → Dashboard app: operate dashboard
README.md - Dashboard app → Sign-in form: renders
frontend/src/App.jsx - Dashboard app → Flight map: renders
frontend/src/App.jsx - Dashboard app → Account management: uses
frontend/src/App.jsx - Dashboard app → HTTP and WebSocket API: sends HTTP and WebSocket
frontend/src/App.jsx - HTTP and WebSocket API → Authentication and policy: authenticates and authorizes
backend/app/main.py - HTTP and WebSocket API → Command and snapshots: executes and snapshots
backend/app/main.py - HTTP and WebSocket API → Persistent models: queries users
backend/app/main.py - HTTP and WebSocket API → OPA policy: checks readiness
backend/app/main.py - Authentication and policy → Persistent models: loads user
backend/app/security.py - Authentication and policy → OPA policy: requests decision
backend/app/security.py - Command and snapshots → Authentication and policy: authenticates and authorizes
backend/app/service.py - Command and snapshots → Flight transitions: applies transitions
backend/app/service.py - Command and snapshots → Persistent models: locks and records
backend/app/service.py - Persistent models → PostgreSQL: persists records
README.md