A comprehensive Vue.js dashboard for analyzing drone flight logs using the Dronelogbook API, inspired by the UAV Log Viewer.
- Flight List Management: View, filter, and search through flight logs
- Interactive 3D Visualization: Cesium-powered 3D flight path visualization
- Parameter Plotting: Plotly.js based plotting similar to UAV Log Viewer
- Flight Comparison: Compare multiple flights side by side
- Real-time Analysis: Analyze flight parameters, events, and modes
- Dronelogbook API Integration: Seamless integration with Dronelogbook API
- Frontend: Vue 3 with Composition API
- Visualization: Plotly.js for 2D plots, Cesium for 3D maps
- UI Framework: Bootstrap 5 with Bootstrap Vue Next
- State Management: Pinia
- Build Tool: Vite
- API Client: Axios
src/
├── components/ # Reusable Vue components
│ ├── FlightList.vue
│ ├── FlightPlots.vue
│ ├── FlightMap.vue
│ └── ...
├── views/ # Page components
│ ├── Dashboard.vue
│ ├── FlightAnalysis.vue
│ └── FlightComparison.vue
├── layouts/ # Layout components
│ └── DashboardLayout.vue
├── stores/ # Pinia stores
│ └── flight.js
├── services/ # API services
│ └── dronelogbook-api.js
└── assets/ # Static assets
└── styles/
- Node.js 16+
- npm or yarn
- Dronelogbook API access
-
Clone the repository:
git clone <repository-url> cd drone-log-book-dashboard
-
Install dependencies:
npm install
-
Environment Configuration: Create a
.envfile in the root directory:VITE_DRONELOGBOOK_API_URL=https://api.dronelogbook.com VITE_CESIUM_ION_TOKEN=your_cesium_ion_token_here -
Development Server:
npm run dev
-
Build for Production:
npm run build
- Flight statistics overview
- Recent flights list with filtering
- Quick actions for flight management
- Aircraft status monitoring
- 3D flight path visualization
- Interactive parameter plotting
- Flight events timeline
- Flight mode analysis
- Real-time telemetry data
- Side-by-side flight comparison
- Parameter overlay charts
- Statistics comparison table
- Synchronized time navigation
The dashboard integrates with the Dronelogbook API for:
- Authentication and user management
- Flight data retrieval
- Telemetry data access
- Parameter and event logging
- File downloads and exports
import dronelogbookAPI from '@/services/dronelogbook-api'
// Login
await dronelogbookAPI.login(email, password)
// Fetch flights
const flights = await dronelogbookAPI.getFlights()
// Get flight telemetry
const telemetry = await dronelogbookAPI.getFlightTelemetry(flightId)- Create component in
src/components/ - Export from
src/components/index.js - Import and use in views
- Create view in
src/views/ - Add route in
src/router/index.js - Update navigation in
DashboardLayout.vue
Modify src/components/FlightPlots.vue to add new parameter types:
const parameterConfig = {
your_param: {
label: 'Your Parameter',
unit: 'unit',
color: '#color',
yaxis: 'y1'
}
}# Build image
docker build -t drone-dashboard .
# Run container
docker run -p 8080:8080 drone-dashboardnpm run build
# Deploy dist/ folder to your hosting provider- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
MIT License - see LICENSE file for details
- Inspired by UAV Log Viewer
- Built for Dronelogbook integration
- Uses Cesium for 3D visualization
- Plotting powered by Plotly.js
For support and questions:
- Create an issue in the GitHub repository
- Check the Dronelogbook API documentation
- Review the UAV Log Viewer for inspiration
