Skip to content

VKWHM/SoraSharp-Framework

Repository files navigation

SoraSharp Framework

A comprehensive drone control and management framework built with Django and React, designed for autonomous vehicle operations with an extensible plugin architecture.

SoraSharp Demo Demonstration

Why this project?

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.

Features

  • 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

Architecture

diagram-export-11-8-2025-11_42_16-AM

Backend (Django)

  • 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

Frontend (React + TypeScript)

  • Control Dashboard: Real-time vehicle monitoring interface
  • Plugin Integration: Dynamic loading of control helper plugins
  • Responsive Design: Material-UI components with Tailwind CSS

Quick Start

Prerequisites

  • Python 3.11+
  • NPM 10.5.0
  • Redis (for WebSocket support)
  • Docker & Docker Compose (optional)

Development Setup

  1. Clone the repository

    git clone https://github.com/vkwhm/SoraSharp-Framework.git
    cd SoraSharp-Framework
  2. 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
  3. Frontend Setup

    cd frontend
    
    # Install dependencies
    npm install
    
    # Start development server
    npm run dev
  4. Access the application

Docker Deployment

# Start all services
docker-compose up -d

# Access application at http://localhost

Note: Docker deployment currently supports network connections but not serial connections for vehicles.

Plugin Development

Creating a Plugin

Use the management command to scaffold a new plugin:

python manage.py create_plugin <plugin_name> <type> <vehicle_type>

Plugin Types

Mission Controller

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)

Control Helper

Provides frontend control interfaces:

# __init__.py
JS_ASSET = "assets/js/main.js"

Plugin Structure

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)

Development Commands

Backend

# 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>

Frontend

# Build for production
npm run build

# Lint code
npm run lint

# Development server
npm run dev

Configuration

Environment Variables

  • DJANGO_SETTINGS_MODULE: Settings module (default: core.settings_dev)
  • DJANGO_LOG_LEVEL: Logging level for Django

Settings

  • Development: core.settings_dev.py
  • Production: core.settings_prod.py

Vehicle Integration

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

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Documentation

Module Documentation

  • SoraSharp Core: Authentication, user management, and security
  • VehicleManager: Vehicle control, mission planning, and real-time communication
  • PluginManager: Plugin architecture, development, and management

Plugin Development Guides

Support

For additional documentation and support, refer to the module-specific README files listed above.


Built with ❤️ for autonomous vehicle control and management.

About

A comprehensive drone control and management framework built with Django and React, featuring autonomous mission planning, real-time vehicle monitoring, and an extensible plugin architecture for UAV operations.

Topics

Resources

License

Stars

Watchers

Forks

Contributors