uto_manager/development_status.md

5.5 KiB
Raw Blame History

UTO Manager — Development Status

Last Updated: 2026-08-07 Current Branch: feature/phase-1-foundations → merged to main Active Phase: Phase 1 — Architecture & Data Foundations ✅ COMPLETE


Phase 1 — Architecture & Data Foundations ✅ COMPLETE

Completed Items

Item Status Notes
Flutter project initialization ✅ Multi-platform: Windows, Web (WASM), Android
Clean architecture folder structure ✅ domain / infrastructure / presentation layers
pubspec.yaml configuration ✅ Drift, Equatable, flutter_bloc, uuid, meta, path_provider
analysis_options.yaml lint rules ✅ very_good_analysis base + project overrides
Echelon entity ✅ Brigade→Team hierarchy, isValidParent, isValidChild, level
DoctrinalBranch entity ✅ Infantry, Medical, Fires, Signal, Cyber/EW, Aviation, Logistics, Engineer
AuthorizedRank entity ✅ E1–E9, W1–W5, O1–O10; payGrade, rankTitle, meetsMinimum, category flags
UnitNode entity ✅ Immutable, Equatable, copyWith, isRoot, isValidParentNode
PositionSlot entity ✅ Immutable, Equatable, copyWith, isVacant, isFilled
PersonnelRecord entity ✅ Immutable, Equatable, copyWith, ReadinessState (FMC/PMC/NMC)
DutyMos value object ✅ Validated MOS codes, @immutable, codesForBranch, isKnown
domain_entities.dart barrel export ✅ Single import for all domain entities
UnitRepository abstract interface ✅ CRUD + subtree + watch streams
PersonnelRepository abstract interface ✅ CRUD + assignment + watch streams
AppDatabase (Drift) schema ✅ Units, PositionSlots, Personnel, Templates tables
Drift code generation (build_runner) ✅ app_database.g.dart generated (94 KB)
assets/data/mos_dictionary.json ✅ 8 branches, 60+ MOS codes, position slot templates
assets/svg/ directory ✅ Reserved for NATO military symbols (Phase 2)
GitHub Actions CI/CD pipeline ✅ Test + analyze + build (Windows, Web WASM, Android)
lib/main.dart placeholder scaffold ✅ Army-blue Material 3 theme, placeholder UI
Unit tests — Echelon ✅ 17 tests passing
Unit tests — AuthorizedRank ✅ 16 tests passing
Unit tests — PersonnelRecord ✅ 13 tests passing
Unit tests — UnitNode ✅ 15 tests passing
Unit tests — DutyMos ✅ 32 tests passing
Widget test — placeholder scaffold ✅ 1 test passing
Total tests ✅ 94 / 94 passing
flutter analyze ✅ No issues found

Phase 2 — Canvas Engine & Drag-Drop UTO Builder (NEXT)

Planned Items

Item Priority Notes
UnitTreeService domain service High Build/validate unit tree from UnitNode list
AssignmentService domain service High Assign/unassign soldiers to slots with validation
Drift DAO implementations High UnitDao, PersonnelDao, PositionSlotDao, TemplateDao
Repository concrete implementations High Wire DAOs to abstract repository interfaces
flutter_bloc Cubits/Blocs High UnitTreeCubit, PersonnelCubit, TemplateCubit
Three-pane UI shell High Left panel (unit tree), center canvas, right panel (personnel)
Interactive canvas widget High Scrollable/zoomable org chart canvas
Drag-and-drop soldier assignment High Drag from personnel panel → drop on position slot
NATO military symbol SVGs Medium Brigade, Battalion, Company, Platoon, Squad, Team symbols
Unit node card widget Medium Echelon symbol + name + fill rate indicator
Position slot card widget Medium MOS badge + rank + soldier name or "VACANT"
Readiness color coding Medium FMC=green, PMC=amber, NMC=red
Template save/load Medium Serialize unit tree to JSON, persist via Templates table

Phase 3 — Reporting & Export (PLANNED)

Item Priority Notes
UTO report generation High PDF/HTML export of unit task organization
Readiness dashboard High Aggregate FMC/PMC/NMC statistics by echelon
Personnel roster export Medium CSV export of assigned/unassigned soldiers
Template library Medium Save/load/share UTO templates
Multi-BCT support Low Support multiple simultaneous BCT configurations
Web deployment Low Deploy WASM build to internal web server

Known Issues / Technical Debt

Issue Severity Resolution
lines_longer_than_80_chars disabled Low Dart formatter produces lines > 80 chars for chained method calls; rule disabled in analysis_options.yaml
Drift DAOs not yet implemented Medium Phase 2 work item — abstract interfaces defined, concrete implementations pending
No integration tests Medium Phase 2 will add integration tests for repository implementations
sqlite3_flutter_libs EOL warning Low Will upgrade when drift supports newer version

Test Coverage Summary

flutter test --coverage
94 tests | 0 failures | 0 skipped
Coverage: domain layer ~95%+ (entities, value objects)

Branch History

Branch Merged Description
feature/phase-1-foundations 2026-08-07 Phase 1: Architecture & Data Foundations