Skip to content

Code-Hauptwache/DroneDeck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

461 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

DroneDeck

Java Desktop Development REST API Multithreading MVC Architecture JUnit Data Visualization License

Table of Contents

Overview

This repository contains the source code and supporting documentation for the DroneDeck project, developed as part of the Object-Oriented Programming in Java course at Frankfurt UAS (Winter 2024). The goal is to create a Java application with a graphical user interface (GUI) to interact with a drone simulation system using a RESTful API.

Quick Start

# Run with API access (requires credentials)
java -jar DroneDeck.jar

# Or run in demo mode (no API access needed)
java -jar DroneDeck.jar --demo

Demo

DroneDeck Demo

Documentation

For comprehensive project documentation, including user handbook and technical details, see our Full Documentation.

Architecture

DroneDeck follows a clean, modern architecture focused on scalability and maintainability:

graph TD
    subgraph "Frontend"
        UI[UI Components]
        Dashboard[Dashboard View]
        Catalog[Catalog View]
    end

    subgraph "Core"
        Controller[Controller Layer]
        Services[Service Layer]
        DataAccess[Data Access Layer]
    end

    subgraph "External"
        API[Drone API]
    end

    UI --> Dashboard
    UI --> Catalog
    Dashboard --> Controller
    Catalog --> Controller
    Controller --> Services
    Services --> DataAccess
    Services --> API
Loading

Key Technologies:

  • Java Swing with modern FlatLaf UI components
  • REST API integration with token authentication
  • Multithreaded data processing for performance
  • Local data caching for offline capabilities

Running the Application

Standard Mode (With API Access)

# Download DroneDeck.jar from the latest release
java -jar DroneDeck.jar

Requirements:

  • โ˜• Java 23+ (Download)
  • ๐Ÿ”‘ DroneSim account with API token
  • ๐ŸŒ Frankfurt UAS network access

Demo Mode (No API Required)

# Perfect for testing without API access
java -jar DroneDeck.jar --demo

Benefits:

  • No API token required
  • Works outside university network
  • Try all features with simulated data

Development Setup

Required Tools

Building From Source

  1. Clone the repository

  2. Open in IntelliJ IDEA

  3. Build โ†’ Build Project

  4. Run using:

    Windows:

    # Option 1: Use the included batch file
    RunDemoDroneDeck.bat
    
    # Option 2: Command line
    java -cp "out/production/DroneDeck;lib/*" main.java.DroneDeck --demo
    

    macOS/Linux:

    java -cp out/production/DroneDeck:lib/* main.java.DroneDeck --demo
    

API Access Setup

  1. Set the DRONE_API_KEY environment variable:

    • Find your API token at DroneSim
    • Setting this prevents manual key entry on each startup in standard mode
  2. Off-campus access:

    • API only accessible from Frankfurt UAS network
    • Install FortiClient VPN
    • Connect using university credentials

Additional Resources


Project Requirements

Project Image


License

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

About

Java Swing drone monitor GUI using multi-threading, auto-refresh & secure auth for DroneSim API data.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors