2.9 KiB
2.9 KiB
Developer Guide
UTO Manager — Engineering & Architecture Reference
This guide covers the technical architecture, implementation details, and contribution guidelines for engineers building and extending the UTO Manager platform.
In This Guide
| Section | Description |
|---|---|
| Architecture Overview | Layered clean architecture and system design |
| Domain Model | Core Dart entities, enums, and repository contracts |
| Canvas Engine | CustomPainter rendering, viewport culling, layout algorithm |
| Symbology Engine | MIL-STD-2525D hybrid rendering pipeline |
| Database & Persistence | Drift schema, DAOs, migrations, offline-first |
| Validation Engine | Real-time MTOE validation in background Isolates |
| Export Engine | JSON, Protobuf, and PDF export modules |
| Performance | RepaintBoundary isolation, Dart Isolates, benchmarks |
| CI/CD | Multi-platform build pipeline and test gates |
| Contributing | Branch strategy, commit conventions, code standards |
Architecture at a Glance
[Presentation Layer]
CustomPainter / InteractiveViewer / Responsive Shell
│
▼
[Application State Layer]
BLoC / Signals / Drag-and-Drop Pipeline
│
▼
[Domain Layer]
MTOE Rules Engine / Structural Validation / Entities
│
▼
[Infrastructure Layer]
Drift SQLite / IndexedDB / Protobuf Codecs / Delta Sync
Technology Stack
| Layer | Technology |
|---|---|
| UI Framework | Flutter 3.x (Dart 3.x) |
| Rendering | CustomPainter + InteractiveViewer |
| State Management | BLoC (flutter_bloc) |
| Drag-and-Drop | Flutter DragTarget / Draggable |
| Local Database | Drift v2 (SQLite / IndexedDB) — schema v2 |
| Web DB Worker | drift_worker.js + sqlite3.wasm |
| Encryption | SQLCipher (planned) |
| Symbology (Web) | milsymbol.js via dart:js_interop (planned) |
| Symbology (Native) | path_drawing + SVG assets + LRU cache (planned) |
| Background Compute | Dart Isolates (IsolateValidationRunner) |
| Serialization | JSON (UnitTreeCodec) + Binary (ProtobufCodec) |
| PDF Export | Pure-Dart PDF 1.4 (PdfChartExporter) |
| Documentation | MkDocs + Material theme |
Development Setup
# Clone the repository
git clone https://git.kellsupport.com/uto_manager.git
cd uto_manager
# Install Flutter dependencies
flutter pub get
# Run static analysis
flutter analyze
# Run all tests with coverage
flutter test --coverage
# Install documentation dependencies
pip install -r docs/requirements.txt
# Serve documentation locally
mkdocs serve