# kmupdate1/agrios_ui_of_kmp architecture

> Architecture diagram of the GitHub repository kmupdate1/agrios_ui_of_kmp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kmupdate1/agrios_ui_of_kmp
- Repository: https://github.com/kmupdate1/agrios_ui_of_kmp

## Overview

AgrioS is a Compose Multiplatform farm-dashboard prototype. The user-facing flow is dashboard interaction: farm and zone information is shown, zone selection and irrigation/alert actions update dashboard state, and the screen presents moisture trends, weather, and alerts. The repository also contains a reusable view/container and side-navigation framework, plus a stylized field-map component and theme boundary. Edges reflect the README and SOURCE INDEX references; unsampled implementations and unlisted runtime wiring are not inferred.

Main entry points: [`composeApp/src/commonMain/kotlin/org/b3/agrios/ui/dashboard/DashboardController.kt`](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/dashboard/DashboardController.kt) (Dashboard controller), [`composeApp/src/commonMain/kotlin/org/b3/agrios/ui/DashboardScreen.kt`](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/DashboardScreen.kt) (Dashboard screen), [`composeApp/src/commonMain/kotlin/org/b3/agrios/ui/content`](https://github.com/kmupdate1/agrios_ui_of_kmp/tree/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/content) (Content view contracts), [`composeApp/src/commonMain/kotlin/org/b3/agrios/Application.kt`](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/Application.kt) (Application lifecycle)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_startup["Application startup"]
  node_application["Application lifecycle<br/>[Application.kt]"]
  node_rootcomposition["Console root composition"]
end

subgraph group_dashboard["Farm dashboard"]
  node_dashboard["Dashboard screen<br/>[DashboardScreen.kt]"]
  node_controller["Dashboard controller"]
  node_events["Dashboard events<br/>[DashboardEvent.kt]"]
  node_state["Dashboard state"]
  node_repository["Dashboard repository"]
  node_dummydata["Demo dashboard data<br/>[DummyData.kt]"]
  node_models["Dashboard models<br/>[Models.kt]"]
end

subgraph group_framework["UI framework"]
  node_view["View and drawable contracts<br/>[View.kt]"]
  node_drawable["Rendering capabilities<br/>[Drawable.kt]"]
  node_containers["List containers"]
  node_content["Content view contracts"]
end

subgraph group_presentation["Navigation and presentation"]
  node_sidenav["Side navigation"]
  node_sidenavcolumn["Navigation columns"]
  node_sidenavitem["Navigation items"]
  node_fieldmap["Field map view"]
  node_fieldmapcontainer["Field map container"]
  node_theme["Theme boundary<br/>[ColorScheme.kt]"]
end

node_user(("Dashboard user"))

node_user -->|"interacts with"| node_dashboard
node_application -->|"creates"| node_rootcomposition
node_application -.->|"renders through"| node_dashboard
node_dashboard -->|"reads state"| node_controller
node_dashboard -->|"dispatches"| node_events
node_controller -->|"loads snapshot"| node_repository
node_controller -->|"updates"| node_state
node_controller -->|"handles"| node_events
node_repository -->|"provides demo data"| node_dummydata
node_view -->|"extends"| node_drawable
node_containers -->|"renders children"| node_view
node_content -->|"extends"| node_view
node_sidenav -->|"uses"| node_content
node_sidenav -->|"uses"| node_sidenavcolumn
node_sidenav -->|"uses"| node_sidenavitem
node_sidenavcolumn -->|"extends"| node_containers
node_sidenavcolumn -->|"contains"| node_content
node_sidenavitem -->|"extends"| node_containers
node_sidenavitem -->|"contains"| node_content
node_fieldmapcontainer -->|"hosts"| node_fieldmap
node_application -->|"configures theme"| node_theme

click node_application "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/Application.kt"
click node_rootcomposition "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/AgriOsConsoleRootComposition.kt"
click node_dashboard "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/DashboardScreen.kt"
click node_controller "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/dashboard/DashboardController.kt"
click node_events "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/dashboard/DashboardEvent.kt"
click node_state "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/dashboard/DashboardUiState.kt"
click node_repository "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/data/DashboardRepository.kt"
click node_dummydata "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/data/DummyData.kt"
click node_models "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/model/Models.kt"
click node_view "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/view/View.kt"
click node_drawable "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/capability/Drawable.kt"
click node_containers "https://github.com/kmupdate1/agrios_ui_of_kmp/tree/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/container"
click node_content "https://github.com/kmupdate1/agrios_ui_of_kmp/tree/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/content"
click node_sidenav "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/SideNavComposition.kt"
click node_sidenavcolumn "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/impl/sidenav/column/ColumnContainerView.kt"
click node_sidenavitem "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/impl/sidenav/item/ItemContainerView.kt"
click node_fieldmap "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/content/FieldMapContentView.kt"
click node_fieldmapcontainer "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/impl/map/FieldMapContainerView.kt"
click node_theme "https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/theme/ColorScheme.kt"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_application,node_rootcomposition,node_user toneBlue
class node_dashboard,node_controller,node_events,node_state,node_repository,node_dummydata,node_models toneAmber
class node_view,node_drawable,node_containers,node_content toneMint
class node_sidenav,node_sidenavcolumn,node_sidenavitem,node_fieldmap,node_fieldmapcontainer,node_theme toneRose
```

## Components

### Application startup

- [Application lifecycle](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/Application.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/Application.kt`
- [Console root composition](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/AgriOsConsoleRootComposition.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/AgriOsConsoleRootComposition.kt`

### Farm dashboard

- [Dashboard screen](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/DashboardScreen.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/DashboardScreen.kt`
- [Dashboard controller](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/dashboard/DashboardController.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/dashboard/DashboardController.kt`
- [Dashboard events](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/dashboard/DashboardEvent.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/dashboard/DashboardEvent.kt`
- [Dashboard state](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/dashboard/DashboardUiState.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/dashboard/DashboardUiState.kt`
- [Dashboard repository](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/data/DashboardRepository.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/data/DashboardRepository.kt`
- [Demo dashboard data](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/data/DummyData.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/data/DummyData.kt`
- [Dashboard models](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/model/Models.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/model/Models.kt`

### UI framework

- [View and drawable contracts](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/view/View.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/view/View.kt`
- [Rendering capabilities](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/capability/Drawable.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/capability/Drawable.kt`
- [List containers](https://github.com/kmupdate1/agrios_ui_of_kmp/tree/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/container): `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/container`
- [Content view contracts](https://github.com/kmupdate1/agrios_ui_of_kmp/tree/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/content): `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/content`

### Navigation and presentation

- [Side navigation](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/SideNavComposition.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/SideNavComposition.kt`
- [Navigation columns](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/impl/sidenav/column/ColumnContainerView.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/impl/sidenav/column/ColumnContainerView.kt`
- [Navigation items](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/impl/sidenav/item/ItemContainerView.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/impl/sidenav/item/ItemContainerView.kt`
- [Field map view](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/content/FieldMapContentView.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/content/FieldMapContentView.kt`
- [Field map container](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/impl/map/FieldMapContainerView.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/impl/map/FieldMapContainerView.kt`
- [Theme boundary](https://github.com/kmupdate1/agrios_ui_of_kmp/blob/main/composeApp/src/commonMain/kotlin/org/b3/agrios/ui/theme/ColorScheme.kt): `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/theme/ColorScheme.kt`

### Other components

- **Dashboard user**

## Connections

- Dashboard user → Dashboard screen: interacts with (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/DashboardScreen.kt`)
- Application lifecycle → Console root composition: creates (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/Application.kt`)
- Application lifecycle → Dashboard screen: renders through
- Dashboard screen → Dashboard controller: reads state (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/DashboardScreen.kt`)
- Dashboard screen → Dashboard events: dispatches (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/DashboardScreen.kt`)
- Dashboard controller → Dashboard repository: loads snapshot (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/dashboard/DashboardController.kt`)
- Dashboard controller → Dashboard state: updates (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/dashboard/DashboardController.kt`)
- Dashboard controller → Dashboard events: handles (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/dashboard/DashboardController.kt`)
- Dashboard repository → Demo dashboard data: provides demo data (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/data/DashboardRepository.kt`)
- View and drawable contracts → Rendering capabilities: extends (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/view/View.kt`)
- List containers → View and drawable contracts: renders children (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/container/ListContainerView.kt`)
- Content view contracts → View and drawable contracts: extends (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/content/ContentView.kt`)
- Side navigation → Content view contracts: uses (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/SideNavComposition.kt`)
- Side navigation → Navigation columns: uses (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/SideNavComposition.kt`)
- Side navigation → Navigation items: uses (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/SideNavComposition.kt`)
- Navigation columns → List containers: extends (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/impl/sidenav/column/ColumnContainerView.kt`)
- Navigation columns → Content view contracts: contains (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/impl/sidenav/column/ColumnContainerView.kt`)
- Navigation items → List containers: extends (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/impl/sidenav/item/ItemContainerView.kt`)
- Navigation items → Content view contracts: contains (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/impl/sidenav/item/ItemContainerView.kt`)
- Field map container → Field map view: hosts (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/ui/impl/map/FieldMapContainerView.kt`)
- Application lifecycle → Theme boundary: configures theme (evidence: `composeApp/src/commonMain/kotlin/org/b3/agrios/Application.kt`)
