|
|
||
|---|---|---|
| .github/workflows | ||
| .idea | ||
| .vscode | ||
| android | ||
| assets/data | ||
| docs | ||
| lib | ||
| test | ||
| web | ||
| windows | ||
| .gitignore | ||
| .markdownlint.json | ||
| .metadata | ||
| README.md | ||
| analysis_options.yaml | ||
| development_status.md | ||
| devtools_options.yaml | ||
| master_development_plan.md | ||
| mkdocs.yml | ||
| phased_development_plan.md | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| uto_manager.iml | ||
README.md
UTO Manager
Flutter-Based Military Unit Task Organization Enterprise System
U.S. Army 2026 Doctrine — Cross-Platform Command & Control Application
Overview
UTO Manager is a cross-platform command and control (C2) application for creating, visualizing, and validating U.S. Army unit task organizations (UTOs) in accordance with 2026 Army doctrine. Built with Flutter, the application targets Windows x64, Web (WASM/CanvasKit), and Android from a single Dart codebase.
The system models military formations from individual soldier positions up to multi-domain Brigade Combat Teams, enforcing Modified Table of Organization and Equipment (MTOE) doctrinal rules in real time.
Key Features
- Interactive Visual Canvas — GPU-accelerated
CustomPainterengine with pan/zoom, viewport culling, and 60 FPS rendering at 5,000+ nodes - Full CRUD UI — Add, edit, and delete units, position slots, and soldiers via modal dialogs with live MOS autocomplete
- Drag-and-Drop Re-parenting — Cross-platform state machine with doctrinal validation highlights (green/red) and undo/redo support
- MIL-STD-2525D Symbology — Hybrid rendering pipeline:
milsymbol.json Web, native SVG path engine on Windows/Android (planned) - 2026 Doctrinal Templates — Pre-configured JSON templates for MBCT, SBCT, ABCT, CAB-Heavy, and CAB-Light formations
- Real-Time MTOE Validation — Background Dart Isolate engine detecting MOS mismatches, rank violations, vacant leadership slots, and structural hierarchy errors
- Offline-First Architecture — Drift/SQLite persistence with delta synchronization for contested network environments
- Multi-Format Export — JSON, Protobuf (
.utob), and vector PDF organizational chart export - Web Platform Support — Full WASM/IndexedDB persistence via
drift_worker.jsandsqlite3.wasm
Platform Targets
| Platform | Deployment | Performance Target |
|---|---|---|
| Windows x64 | Native .msi / .exe |
60 FPS @ 5,000+ nodes |
| Web (WASM) | WebAssembly + CanvasKit | 60 FPS @ 2,000+ nodes |
| Android | Native .apk / .aab |
60 FPS @ 1,500+ nodes |
Architecture
[Presentation Layer: CustomPainter / InteractiveViewer / Responsive Shell]
│
▼
[Application State Layer: BLoC / Signals / Super Drag-and-Drop Pipeline]
│
▼
[Domain Layer: MTOE Doctrinal Rules Engine / Structural Validation]
│
▼
[Infrastructure Layer: Drift SQLite / IndexedDB / Protobuf Codecs]
Project Structure
lib/
├── domain/ # Entities, value objects, repository interfaces
│ ├── entities/ # UnitNode, PositionSlot, PersonnelRecord
│ ├── enums/ # Echelon, DoctrinalBranch, AuthorizedRank
│ └── repositories/ # Abstract repository contracts
├── application/ # BLoC / use cases / state management
│ ├── blocs/ # State management BLoCs
│ └── use_cases/ # Domain use case implementations
├── infrastructure/ # Drift DB, IndexedDB adapters, Protobuf codecs
│ ├── database/ # Drift table definitions and DAOs
│ ├── codecs/ # JSON and Protobuf serialization
│ └── sync/ # Delta synchronization engine
└── presentation/ # Widgets, painters, responsive shell
├── canvas/ # CustomPainter, InteractiveViewer, viewport
├── layout/ # Reingold-Tilford algorithm, Quadtree index
├── symbology/ # MIL-STD-2525D rendering pipeline
└── shell/ # Three-pane UI, responsive layouts
Getting Started
Prerequisites
- Flutter SDK 3.x or later
- Dart SDK 3.x (included with Flutter)
- Visual Studio 2022 with Desktop development with C++ workload (Windows target)
- Android Studio with Android SDK (Android target)
- Python 3.9+ with
pip(MkDocs documentation) - Git
Clone the Repository
git clone https://git.kellsupport.com/uto_manager.git
cd uto_manager
Install Flutter Dependencies
flutter pub get
Run the Application
# Windows desktop
flutter run -d windows
# Web (Chrome)
flutter run -d chrome
# Web (WASM mode)
flutter run -d chrome --wasm
# Android (connected device or emulator)
flutter run -d android
Run Tests
# All tests
flutter test
# With coverage
flutter test --coverage
# Static analysis
flutter analyze
Build Release Packages
# Windows
flutter build windows --release
# Web (WASM)
flutter build web --wasm --release
# Android APK
flutter build apk --release
# Android App Bundle (Google Play)
flutter build appbundle --release
Documentation
Project documentation is built with MkDocs using the Material theme.
Install Documentation Dependencies
pip install -r docs/requirements.txt
Serve Documentation Locally
mkdocs serve
Then open http://127.0.0.1:8000 in your browser.
Build Documentation Site
mkdocs build
Output is written to the site/ directory (excluded from version control).
Development Workflow
Branch Strategy
| Branch | Purpose |
|---|---|
main |
Production-ready releases only |
develop |
Integration branch for completed features |
feature/* |
Individual feature development |
fix/* |
Bug fixes |
release/* |
Release preparation and stabilization |
Commit Convention
This project follows Conventional Commits:
feat(canvas): implement viewport culling via inverse matrix transform
fix(validation): correct MOS mismatch detection for 68W slots
docs(readme): update platform prerequisites
chore(deps): upgrade drift to 2.x
Code Quality
# Format code
dart format .
# Analyze code
flutter analyze
# Run linter
dart run dart_code_metrics:metrics analyze lib
Technology Stack
| Layer | Technology | Purpose |
|---|---|---|
| UI Framework | Flutter (Dart) | Single codebase for Windows, Web, Android |
| Rendering | CustomPainter + InteractiveViewer | GPU-direct drawing; bypasses widget tree overhead |
| State Management | BLoC + Signals | Reactive atomic state |
| Drag-and-Drop | super_drag_and_drop | Cross-platform payload integrity |
| Local Database | Drift (SQLite / IndexedDB) | Type-safe reactive ORM; offline-first |
| Encryption | SQLCipher | Data-at-rest protection |
| Symbology (Web) | milsymbol.js via dart:js_interop | Full MIL-STD-2525D compliance |
| Symbology (Native) | path_drawing + SVG assets + LRU cache | Zero external runtime dependencies |
| Background Compute | Dart Isolates | Offload layout, validation, export |
| Serialization | JSON + Protobuf | Human-readable + compact binary export |
| PDF Export | pdf package | Vector-quality organizational chart output |
| Documentation | MkDocs + Material theme | User and developer documentation |
Development Phases
| Phase | Title | Weeks | Status |
|---|---|---|---|
| Phase 1 | Architecture & Data Foundations | 1 – 4 | ✅ Complete |
| Phase 2 | Canvas Graphics Engine & Persistence | 5 – 9 | ✅ Complete |
| Phase 3 | Template Library & Import/Export | 10 – 14 | ✅ Complete |
| Phase 4 | Reporting & Analytics | 15 – 19 | ✅ Complete |
| Phase 5 | UI/CRUD Layer & Web Platform | 20 – 24 | ✅ Complete |
See development_status.md for detailed task tracking and phased_development_plan.md for full phase specifications.
Contributing
- Fork the repository and create a
feature/*branch fromdevelop - Implement your changes with appropriate unit tests
- Ensure
flutter analyzepasses with zero violations - Ensure
flutter test --coveragemeets the 80% minimum threshold - Submit a pull request targeting the
developbranch - Pull requests require passing CI on all three platform targets before merge
Security
This application is designed for use with U.S. Army organizational data. All local data is encrypted at rest using SQLCipher. Encryption keys are stored in platform keychains (Windows Credential Manager / Android Keystore).
Do not commit sensitive data, encryption keys, or classified information to this repository.
License
Proprietary — All rights reserved. See LICENSE for details.
Related Documents
master_development_plan.md— Full architectural specificationphased_development_plan.md— Phase-by-phase implementation plandevelopment_status.md— Sprint tracking and task status- Documentation Site — MkDocs user and developer documentation