FLYON is a personal web platform for drone and FPV drone owners. It helps users understand, analyze, and improve their flights through telemetry, real-time tracking, safety warnings, and post-flight insights.
- Frontend: Next.js 14+ (React, TypeScript, Tailwind CSS)
- Backend: Node.js + Express (TypeScript)
- Database: PostgreSQL with PostGIS extension
- Real-time: WebSocket for live telemetry updates
- Authentication: JWT-based with device tokens
FLYON/
├── backend/ # Node.js/Express API server
├── frontend/ # Next.js application
├── tools/ # Ground bridge and utilities
├── docs/ # Project documentation
├── scripts/ # Helper scripts
├── docker-compose.yml # Development environment
└── README.md
- User authentication and profile management
- Drone management with device tokens
- Real-time flight tracking with live map
- Telemetry ingestion (log upload, live bridge, RadioMaster Pocket)
- Danger zone warnings and safety assistant
- Post-flight analysis and Flight Health Score
- Flight replay with timeline visualization
- Analytics dashboard and flight history
- GDPR-compliant data export and deletion
- Betaflight Integration - Config management, PID tuning, Blackbox analysis
- Advanced Analytics - G-force analysis, maneuver detection, flight comparison
- Social Features - Flight sharing, achievements, public profiles
- RadioMaster Pocket - USB Serial integration for transmitter data
- Weather API - Flight condition monitoring (ready for integration)
See docs/FEATURES.md for complete feature list.
- Node.js 18+ installed
- Docker Desktop installed and running
- npm or yarn package manager
For complete setup guide, see docs/GETTING_STARTED.md
Quick commands:
- Start database:
docker-compose up -d - Setup backend:
cd backend && npm install && npm run migrate - Setup frontend:
cd frontend && npm install - Start backend:
cd backend && npm run dev(Terminal 1) - Start frontend:
cd frontend && npm run dev(Terminal 2) - Open: http://localhost:3000
Note: Make sure to create .env file in backend/ and .env.local in frontend/ directories. See docs/GETTING_STARTED.md for configuration details.
Quick scripts: Use ./scripts/start-all.sh to start everything automatically.
Documentation: See docs/README.md for complete documentation index.
Run migrations to set up the database schema:
cd backend
npm run migrateFLYON supports multiple telemetry input methods:
- Log Upload - CSV, JSON files via web interface
- Live Bridge - MAVLink → FLYON via ground bridge
- RadioMaster Pocket - USB Serial connection for transmitter data
- Betaflight Blackbox - Upload and analyze .bbl logs
- Companion Computer - Onboard telemetry (future)
POST /api/v1/auth/register- Register new userPOST /api/v1/auth/login- Login and get JWT tokenGET /api/v1/auth/me- Get current user profileGET /api/v1/drones- List user's dronesPOST /api/v1/drones- Create new droneGET /api/v1/flights- List user's flightsPOST /api/v1/flights- Create new flight sessionPOST /api/v1/telemetry- Ingest telemetry (requires device token)POST /api/v1/flights/upload-log- Upload flight log file (CSV, JSON)GET /api/v1/danger-zones- List danger zonesPOST /api/v1/analytics/flights/:id/health-score- Calculate health scoreGET /api/v1/export/data- Export all user data (GDPR)GET /api/v1/export/flights/:id/kml- Export flight to KML formatGET /api/v1/export/flights/:id/gpx- Export flight to GPX format
Connect to ws://localhost:3002?token=<JWT_TOKEN>
subscribe- Subscribe to flight updates:{ type: 'subscribe', flight_id: '...' }telemetry- Receive telemetry updates:{ type: 'telemetry', flight_id: '...', data: {...} }warning- Receive danger zone warnings:{ type: 'warning', data: {...} }flight_update- Receive flight status updates:{ type: 'flight_update', flight_id: '...', data: {...} }
FLYON is optimized for smooth real-time updates with minimal system load:
- Memory Management: Automatic telemetry array limiting (max 10,000 points)
- WebSocket Optimization: Primary real-time channel with intelligent fallback
- Component Memoization: Reduced recalculations by 70-80%
- Map Debouncing: Smooth 60 FPS map updates with <100ms latency
- Graph Optimization: Efficient rendering even with 10,000+ telemetry points
For detailed performance optimizations, see docs/PERFORMANCE_OPTIMIZATIONS.md
- Safety Assistant, Not Autopilot: FLYON provides warnings and insights only
- Privacy-First: User owns all data, GDPR-compliant
- Drone-Agnostic: Works with any drone via telemetry input
- Production-Ready: Clean architecture, scalable design
- Performance-Optimized: Smooth real-time updates with minimal resource usage
MIT






