A comprehensive drone control and management framework built with Django and React, designed for autonomous vehicle operations with an extensible plugin architecture.
I’ve always been impressed by frameworks like Django, Metasploit, and Symfony. While working on UAV (Unmanned Aerial Vehicle) autonomous missions I encountered many repetitive struggles and mistakes that can lead to serious problems. I asked myself:
“Why not build a framework that prevents errors caused by lack of experience, speeds up development, and includes useful toolsets?”
From that idea, I began researching how to turn it into reality. I designed SoraSharp as a web-based framework to enhance the accessibility, management, and security of UAV systems. Although the project has evolved beyond my initial vision, it has given me invaluable experience and a new perspective on software design and autonomous systems. I hope this framework helps others build safer, smarter, and more efficient UAV applications.
- Multi-Vehicle Support: Manage multiple drones and vehicles from a single interface
- Plugin Architecture: Extensible system for mission controllers and control helpers
- Real-time Control: WebSocket-based live vehicle monitoring and control
- Mission Planning: Advanced autonomous mission planning and execution
- Web Interface: Modern React-based control dashboard
- Docker Support: Containerized deployment with Docker Compose
- SoraSharp: Core user management and authentication
- VehicleManager: Vehicle connection, control, and mission execution
- PluginManager: Dynamic plugin system for extending functionality
- REST API: Comprehensive API for all system operations
- Control Dashboard: Real-time vehicle monitoring interface
- Plugin Integration: Dynamic loading of control helper plugins
- Responsive Design: Material-UI components with Tailwind CSS
- Python 3.11+
- NPM 10.5.0
- Redis (for WebSocket support)
- Docker & Docker Compose (optional)
-
Clone the repository
git clone https://github.com/vkwhm/SoraSharp-Framework.git cd SoraSharp-Framework -
Backend Setup
# Install Python dependencies pip install -r requirements.txt # Run migrations python manage.py migrate # Create superuser python manage.py createsuperuser # Start development server python manage.py runserver
-
Frontend Setup
cd frontend # Install dependencies npm install # Start development server npm run dev
-
Access the application
- Backend API: http://localhost:8000
- Frontend: http://localhost:3000
# Start all services
docker-compose up -d
# Access application at http://localhostNote: Docker deployment currently supports network connections but not serial connections for vehicles.
Use the management command to scaffold a new plugin:
python manage.py create_plugin <plugin_name> <type> <vehicle_type>Defines autonomous mission logic for vehicles:
# mission.py
from VehicleManager.planners.drone_planner import DroneMissionPlanner
class Plan(DroneMissionPlanner):
def step_1(self, logger):
return self.MISSION_CMD_TAKEOFF(self.altitude)Provides frontend control interfaces:
# __init__.py
JS_ASSET = "assets/js/main.js"plugin_name/
├── plugin_details.yaml # Plugin metadata
├── mission.py # Mission logic (mission controllers)
├── __init__.py # Plugin initialization
├── assets/js/main.js # Frontend assets (control helpers)
└── urls.py # URL routing (optional)
# Run tests
python manage.py test
# Run specific test
python manage.py test app.test_file.TestClass.test_method
# Create plugin
python manage.py create_plugin <name> <type> <vehicle># Build for production
npm run build
# Lint code
npm run lint
# Development server
npm run devDJANGO_SETTINGS_MODULE: Settings module (default:core.settings_dev)DJANGO_LOG_LEVEL: Logging level for Django
- Development:
core.settings_dev.py - Production:
core.settings_prod.py
The framework supports vehicles using the DroneKit-Python library:
- MAVLink Protocol: Standard communication protocol
- Real-time Telemetry: Live vehicle status monitoring
- Mission Execution: Autonomous waypoint navigation
- Safety Features: Pre-arm checks and error handling
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- SoraSharp Core: Authentication, user management, and security
- VehicleManager: Vehicle control, mission planning, and real-time communication
- PluginManager: Plugin architecture, development, and management
- Creating a Plugin: Basic plugin creation guide
- Mission Plugin Development: Comprehensive mission plugin development
For additional documentation and support, refer to the module-specific README files listed above.
Built with ❤️ for autonomous vehicle control and management.
