Skip to content

Companion and standalone app for DCS World with map-based route planning and navigation, marker management, interactive Markdown/PDF checklists, annotations, notes, tab support, and live telemetry display (DataPad). Implemented using Jetpack Compose.

License

Notifications You must be signed in to change notification settings

arn-c0de/InteractiveChecklists

Repository files navigation

GitHub DeepWiki Version Platform Jetpack Compose License: CC BY-NC-SA 4.0

InteractiveChecklists

InteractiveChecklists is an Android application for viewing and interacting with Markdown and PDF checklists. It is built with Jetpack Compose and follows an MVVM-style architecture.

Development status: This repository is a development version and not an official release. The app is functional but under active development and may contain experimental features.

Note: A preview APK for version 1.1 is planned. If you are not familiar with Android Studio or building apps from source, please wait for the official preview release to test the app.

Current Development Focus (December 2025)
I am currently primarily working on the core infrastructure to enable secure data transfer between devices and DCS World. This includes finalizing the ECDH handshake implementation, preparing the groundwork for future squad mode (secure data sharing between multiple devices), and completing database integration and data formatting. These foundational changes are complex and time-intensive, which means progress on other areas—such as UI performance improvements, visual enhancements, and smaller features—is happening only on the side and at a slower pace. Thank you for your patience!

Table of Contents

Features

  • Unified File System: Manage files from bundled assets and internal storage in a single hierarchical view.
  • Multilanguage Support: The app supports English, Spanish and German. You can switch the language in the Settings menu. All UI text is available in English.
  • Multi-Tab System: Open multiple documents (MD/PDF) with a scrollable tab bar, quick tab switcher, swipe navigation, and tab persistence.
  • PDF Viewer: PDF viewer with annotations (draw/highlight/erase), pinch-to-zoom, page snapping, and color inversion.
  • Interactive Markdown Checklists: Stateful checkboxes and collapsible sections for interactive checklists.
  • Tagging System: Assign tags to files for filtering and organization.
  • QuickNotes: Persistent notes powered by Room, with search, autosave, and markdown support.
  • Data Persistence: Stores user preferences, annotations, shortcuts, tags, and open tabs locally.
  • DataPad (experimental): Live flight telemetry display (UDP) for DCS World. Streams aircraft telemetry to the app for realtime status and popup details — see docs/features/DATAPAD_FEATURE.md for full details and setup instructions.
  • Aviation Map (experimental): OpenStreetMap-based map viewer with live aircraft position tracking from the DataPad stream. Adds a MapViewer tab showing aircraft position, heading, altitude and basic overlays — see docs/features/AVIATION_MAP_FEATURE.md for details and configuration.
  • MapDatabaseTools (Python): A collection of Python utilities for receiving, decrypting (AES-GCM), and visualizing DCS flight telemetry. Includes a PySide6 GUI with an embedded OpenStreetMap/Leaflet map for live aircraft tracking, a marker database, and helper scripts to manage map assets. See scripts/MapDatabaseTools/README.md for usage and configuration.

Experimental: DataPad (Live Flight Telemetry)

DataPad is an experimental feature that receives real-time aircraft telemetry from DCS World via UDP (default port 5010). It is intended for advanced users and requires running the forward_parsed_udp.py script to forward telemetry to your device.

Security Features (NEW - December 2025)

✅ ECDH Handshake Mode - Production-ready secure communication:

  • End-to-end encryption with per-session AES-256-GCM keys
  • Device authentication via whitelist (authorized_devices.json)
  • Forward secrecy - compromising one session doesn't affect others
  • Replay attack protection with counter-based nonces
  • Timestamp validation (5-minute window)
  • Mutual authentication (client ↔ server)

Quick Start (ECDH Mode):

# Python: Enable handshake mode
python forward_parsed_udp.py --repeat-last --interval 1 --host 192.168.178.101 --port 5010 --verbose --authorized-devices authorized_devices.json --bind-ip 192.168.178.100

# Android: Settings → DataPad → Enable "ECDH Handshake Mode"
# Add your device ID to authorized_devices.json on server

See docs/technical/ECDH_USAGE_GUIDE.md for complete setup instructions and docs/features/DATAPAD_FEATURE.md for full usage, configuration, and troubleshooting.

Phase 1 (experimental): This release represents Phase 1 of DataPad. Future phases will expand telemetry coverage and add visual and security improvements, including live animated aircraft visualizations and a dedicated UI redesign.

Next up: 2-way communication (experimental) — enabling data flow from the app back to DCS.

Planned enhancements include additional telemetry (speed, vertical speed, fuel, systems), live animated aircraft visualizations, and UI/UX improvements.

Screenshots

File explorer - list of files and folders Markdown viewer showing interactive checklists PDF viewer with annotation tools QuickNotes bottom sheet and editor Calculator for landing patterns Route lines overlay with labels Route planner - line preview Create Route sheet DataPad live telemetry panel Settings and preferences

Installation

Step-by-step instructions to get the project running locally.

  1. Prerequisites

    • Install Android Studio (Arctic Fox or later recommended).
    • Install a compatible JDK (Java 11 or later recommended).
    • Configure Android SDK and at least one emulator or use a physical device.
  2. Clone the repository

git clone https://github.com/arn-c0de/InteractiveChecklists.git
cd InteractiveChecklists
  1. Build with Gradle (command-line)
./gradlew assembleDebug
  1. Open in Android Studio
    • Open the InteractiveChecklists directory in Android Studio.
    • Let Gradle sync and allow Android Studio to download any missing SDK components.
    • Run the app on an emulator or connected device.

System Requirements

  • Supported OS: Windows, macOS, Linux (for development).
  • Android Studio: Arctic Fox or newer recommended.
  • JDK: Java 11+ recommended.
  • Android SDK: API level corresponding to the project's compileSdk and targetSdk (see build.gradle.kts).

How to Build & Run

  • From Android Studio: Open the project, wait for Gradle to finish syncing, then select a target device and click Run.
  • From the command line: ./gradlew assembleDebug builds an APK; use ./gradlew installDebug to install on a connected device.

Key Components

  • MainActivity.kt: App entry point and navigation orchestration.
  • data/files/InternalFileManager.kt: Unified file management.
  • ui/files/InternalFilesScreen.kt: File browser and tagging UI.
  • ui/checklist/MarkdownViewer.kt: Interactive markdown checklist viewer.
  • ui/checklist/PdfViewer.kt: PDF viewer and annotation tools.
  • data/quicknotes/QuickNoteManager.kt: QuickNotes data layer.

Contributing

We welcome contributions. For guidelines, issue workflow, and coding standards, see COLLABORATORS.md.

Quick contribution ideas:

  • Improve documentation or add examples.
  • Add or extend tests.
  • Fix small UI/UX bugs or accessibility issues.

For larger or breaking changes, please open an issue first to discuss design and scope.

Roadmap

Planned features and long-term improvements are tracked in the Roadmap document.

Support & Contact

If you encounter issues or have questions:

  • Open an issue in this repository.
  • For security-sensitive issues, please follow the instructions in SECURITY.md.
  • For contribution coordination and discussions, see COLLABORATORS.md.

FAQ

  • Q: How do I run tests?
    • A: There are unit tests under app/src/test. Run them via ./gradlew test.
  • Q: What is the license?
    • A: This project is licensed under CC-BY-NC-SA 4.0. See the LICENSE file for details.
  • Q: Where is the documentation?

Acknowledgements & Credits

Thanks to all contributors and to the Jetpack Compose and Android open-source ecosystems used in this project.

License

This project is licensed under the terms in the LICENSE file (CC BY-NC-SA 4.0).

About

Companion and standalone app for DCS World with map-based route planning and navigation, marker management, interactive Markdown/PDF checklists, annotations, notes, tab support, and live telemetry display (DataPad). Implemented using Jetpack Compose.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published