Skip to content

Development

Layout (Streamlit app)

The primary UI is driven by app.py, which wires Streamlit page config, data loading, and view modules:

Area Role
app.py Entry point, session state, orchestrates views
data/ Loading and parsing helpers for uploaded log bytes
views/ Streamlit panels: summary, map, telemetry toolbar, AI analysis
ui/ Shared styles and components
service/ Backend logic (e.g. AI flight analysis)

Legacy Dash dashboard

drone_dashboard.py is a self-contained Dash application: constants, parse_log(), compute_metrics(), panel builders, and CLI (main). It remains useful for the classic all-panels-at-once layout and HTML export.

Dependencies

Runtime libraries are listed in requirements.txt (pymavlink, numpy, plotly, dash, streamlit, geopy, google-genai, python-dotenv). Documentation tooling is isolated in requirements-docs.txt so production installs do not require MkDocs.

Tests and quality

Add or run tests according to your workflow; this page only reflects the current structure. When extending message types or metrics, keep parsing and analytics changes consistent between Dash and Streamlit paths if both are still supported.