# yojimbo1of1bd/kaka-sinventory architecture

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

- Interactive diagram: https://gitdiagram.com/yojimbo1of1bd/kaka-sinventory
- Repository: https://github.com/yojimbo1of1bd/kaka-sinventory
- Video tour (about a minute): https://gitdiagram.com/yojimbo1of1bd/kaka-sinventory/video

## Overview

Project Kaka is an offline Android app for personal inventory, moving cartons, care tasks, and double-entry personal finance. The main workflow is user interaction through the app UI, into inventory or finance repositories, and persistence in the local Room database; notable side flows include carton scanning, terminal commands, and local backup/export. Groups capture the product’s major capabilities and its data layer. Several feature links are documented in the README rather than shown in sampled implementation, so those edges cite the README; unsampled internal wiring is omitted.

Main entry points: [`app/src/main/java/com/projectkaka/inventory/data/local/AppDatabase.kt`](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/local/AppDatabase.kt) (Room database), [`app/src/main/java/com/projectkaka/inventory/data/repository/InventoryRepositoryImpl.kt`](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/repository/InventoryRepositoryImpl.kt) (Inventory repository), [`app/src/main/java/com/projectkaka/inventory/data/repository/FinanceRepositoryImpl.kt`](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/repository/FinanceRepositoryImpl.kt) (Finance repository), [`app/src/main/java/com/projectkaka/inventory/KakaApplication.kt`](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/KakaApplication.kt) (Dependency container)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App shell"]
  node_activity["Activity and lock gate<br/>[MainActivity.kt]"]
  node_compose["Compose app UI<br/>[KakaApp.kt]"]
  node_application["Dependency container<br/>[KakaApplication.kt]"]
end

subgraph group_inventory["Inventory and moving"]
  node_inventory_ui["Inventory screens<br/>[DashboardScreen.kt]"]
  node_drafts["Draft capture<br/>[DraftScreen.kt]"]
  node_item_detail["Item detail and care"]
  node_baskets["Cartons and scanner<br/>[BasketsScreen.kt]"]
  node_barcode["Barcode tools<br/>[BarcodeAnalyzer.kt]"]
  node_map["Visual belongings map"]
  node_inventory_repo["Inventory repository"]
end

subgraph group_finance["Finance and search"]
  node_finance_ui["Budget and statements"]
  node_ledger["Ledger and liquidation<br/>[LedgerViewModel.kt]"]
  node_terminal["Terminal commands"]
  node_terminal_session["Terminal session"]
  node_finance_repo["Finance repository"]
  node_money["Minor-unit money<br/>[Money.kt]"]
  node_search["Power search grammar"]
end

subgraph group_documents["Documents and backup"]
  node_documents["Document management"]
  node_backup["Backup and export<br/>[ExportWriter.kt]"]
end

subgraph group_local["Local data and security"]
  node_preferences["Privacy preferences<br/>[UserPreferences.kt]"]
  node_db[("Room database<br/>[AppDatabase.kt]")]
  node_items["Inventory records<br/>[ItemEntity.kt]"]
  node_accounts["Financial records<br/>[AccountEntity.kt]"]
  node_image_store["Local image stores<br/>[LocalImageStore.kt]"]
end

node_user(("User"))
node_external(("Android system"))

node_user -->|"opens app"| node_activity
node_activity -->|"hosts UI"| node_compose
node_application -->|"provides database"| node_db
node_application -->|"provides repository"| node_inventory_repo
node_application -->|"provides repository"| node_finance_repo
node_compose -.->|"shows features"| node_inventory_ui
node_inventory_ui -.->|"manages inventory"| node_inventory_repo
node_drafts -.->|"captures drafts"| node_inventory_repo
node_item_detail -.->|"manages care"| node_inventory_repo
node_baskets -.->|"packs items"| node_inventory_repo
node_baskets -.->|"scans labels"| node_barcode
node_inventory_ui -.->|"exports infographic"| node_map
node_inventory_repo -->|"records liquidation"| node_finance_repo
node_finance_ui -.->|"reads budget data"| node_finance_repo
node_ledger -.->|"manages ledger"| node_finance_repo
node_finance_repo -->|"uses amounts"| node_money
node_terminal_session -->|"executes commands"| node_terminal
node_terminal_session -->|"starts overlay"| node_external
node_search -.->|"filters inventory"| node_inventory_repo
node_inventory_repo -->|"accesses Room"| node_db
node_finance_repo -->|"uses transactions"| node_db
node_db -->|"stores items"| node_items
node_db -->|"stores accounts"| node_accounts
node_application -->|"provides documents"| node_documents
node_documents -.->|"persists documents"| node_db
node_backup -.->|"backs up database"| node_db
node_backup -.->|"archives images"| node_image_store
node_compose -.->|"offers export"| node_backup
node_compose -.->|"configures privacy"| node_preferences
node_db -.->|"stores image paths"| node_image_store

click node_activity "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/MainActivity.kt"
click node_compose "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/KakaApp.kt"
click node_application "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/KakaApplication.kt"
click node_inventory_ui "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/dashboard/DashboardScreen.kt"
click node_drafts "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/drafts/DraftScreen.kt"
click node_item_detail "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/detail/ItemDetailScreen.kt"
click node_baskets "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/basket/BasketsScreen.kt"
click node_barcode "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/util/BarcodeAnalyzer.kt"
click node_map "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/util/VisualMapGenerator.kt"
click node_inventory_repo "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/repository/InventoryRepositoryImpl.kt"
click node_finance_ui "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/dashboard/DashboardViewModel.kt"
click node_ledger "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/liquidate/LedgerViewModel.kt"
click node_terminal "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/search/TerminalExecutor.kt"
click node_terminal_session "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/settings/TerminalSessionManager.kt"
click node_finance_repo "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/repository/FinanceRepositoryImpl.kt"
click node_money "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/model/Money.kt"
click node_search "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/search/MagicInputParser.kt"
click node_documents "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/repository/DocumentRepositoryImpl.kt"
click node_backup "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/local/ExportWriter.kt"
click node_preferences "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/settings/UserPreferences.kt"
click node_db "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/local/AppDatabase.kt"
click node_items "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/local/entity/ItemEntity.kt"
click node_accounts "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/local/entity/AccountEntity.kt"
click node_image_store "https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/local/LocalImageStore.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_activity,node_compose,node_application,node_user toneBlue
class node_inventory_ui,node_drafts,node_item_detail,node_baskets,node_barcode,node_map,node_inventory_repo toneAmber
class node_finance_ui,node_ledger,node_terminal,node_terminal_session,node_finance_repo,node_money,node_search toneMint
class node_documents,node_backup toneRose
class node_preferences,node_db,node_items,node_accounts,node_image_store,node_external toneIndigo
```

## Components

### App shell

- [Activity and lock gate](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/MainActivity.kt): `app/src/main/java/com/projectkaka/inventory/MainActivity.kt`
- [Compose app UI](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/KakaApp.kt): `app/src/main/java/com/projectkaka/inventory/ui/KakaApp.kt`
- [Dependency container](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/KakaApplication.kt): `app/src/main/java/com/projectkaka/inventory/KakaApplication.kt`

### Inventory and moving

- [Inventory screens](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/dashboard/DashboardScreen.kt): `app/src/main/java/com/projectkaka/inventory/ui/dashboard/DashboardScreen.kt`
- [Draft capture](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/drafts/DraftScreen.kt): `app/src/main/java/com/projectkaka/inventory/ui/drafts/DraftScreen.kt`
- [Item detail and care](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/detail/ItemDetailScreen.kt): `app/src/main/java/com/projectkaka/inventory/ui/detail/ItemDetailScreen.kt`
- [Cartons and scanner](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/basket/BasketsScreen.kt): `app/src/main/java/com/projectkaka/inventory/ui/basket/BasketsScreen.kt`
- [Barcode tools](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/util/BarcodeAnalyzer.kt): `app/src/main/java/com/projectkaka/inventory/util/BarcodeAnalyzer.kt`
- [Visual belongings map](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/util/VisualMapGenerator.kt): `app/src/main/java/com/projectkaka/inventory/util/VisualMapGenerator.kt`
- [Inventory repository](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/repository/InventoryRepositoryImpl.kt): `app/src/main/java/com/projectkaka/inventory/data/repository/InventoryRepositoryImpl.kt`

### Finance and search

- [Budget and statements](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/dashboard/DashboardViewModel.kt): `app/src/main/java/com/projectkaka/inventory/ui/dashboard/DashboardViewModel.kt`
- [Ledger and liquidation](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/liquidate/LedgerViewModel.kt): `app/src/main/java/com/projectkaka/inventory/ui/liquidate/LedgerViewModel.kt`
- [Terminal commands](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/search/TerminalExecutor.kt): `app/src/main/java/com/projectkaka/inventory/search/TerminalExecutor.kt`
- [Terminal session](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/ui/settings/TerminalSessionManager.kt): `app/src/main/java/com/projectkaka/inventory/ui/settings/TerminalSessionManager.kt`
- [Finance repository](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/repository/FinanceRepositoryImpl.kt): `app/src/main/java/com/projectkaka/inventory/data/repository/FinanceRepositoryImpl.kt`
- [Minor-unit money](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/model/Money.kt): `app/src/main/java/com/projectkaka/inventory/model/Money.kt`
- [Power search grammar](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/search/MagicInputParser.kt): `app/src/main/java/com/projectkaka/inventory/search/MagicInputParser.kt`

### Documents and backup

- [Document management](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/repository/DocumentRepositoryImpl.kt): `app/src/main/java/com/projectkaka/inventory/data/repository/DocumentRepositoryImpl.kt`
- [Backup and export](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/local/ExportWriter.kt): `app/src/main/java/com/projectkaka/inventory/data/local/ExportWriter.kt`

### Local data and security

- [Privacy preferences](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/settings/UserPreferences.kt): `app/src/main/java/com/projectkaka/inventory/data/settings/UserPreferences.kt`
- [Room database](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/local/AppDatabase.kt): `app/src/main/java/com/projectkaka/inventory/data/local/AppDatabase.kt`
- [Inventory records](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/local/entity/ItemEntity.kt): `app/src/main/java/com/projectkaka/inventory/data/local/entity/ItemEntity.kt`
- [Financial records](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/local/entity/AccountEntity.kt): `app/src/main/java/com/projectkaka/inventory/data/local/entity/AccountEntity.kt`
- [Local image stores](https://github.com/yojimbo1of1bd/kaka-sinventory/blob/main/app/src/main/java/com/projectkaka/inventory/data/local/LocalImageStore.kt): `app/src/main/java/com/projectkaka/inventory/data/local/LocalImageStore.kt`

### Other components

- **User**
- **Android system**

## Connections

- User → Activity and lock gate: opens app (evidence: `README.md`)
- Activity and lock gate → Compose app UI: hosts UI (evidence: `app/src/main/java/com/projectkaka/inventory/MainActivity.kt`)
- Dependency container → Room database: provides database (evidence: `app/src/main/java/com/projectkaka/inventory/KakaApplication.kt`)
- Dependency container → Inventory repository: provides repository (evidence: `app/src/main/java/com/projectkaka/inventory/KakaApplication.kt`)
- Dependency container → Finance repository: provides repository (evidence: `app/src/main/java/com/projectkaka/inventory/KakaApplication.kt`)
- Compose app UI → Inventory screens: shows features (evidence: `app/src/main/java/com/projectkaka/inventory/ui/KakaApp.kt`)
- Inventory screens → Inventory repository: manages inventory
- Draft capture → Inventory repository: captures drafts
- Item detail and care → Inventory repository: manages care
- Cartons and scanner → Inventory repository: packs items
- Cartons and scanner → Barcode tools: scans labels (evidence: `README.md`)
- Inventory screens → Visual belongings map: exports infographic (evidence: `README.md`)
- Inventory repository → Finance repository: records liquidation (evidence: `app/src/main/java/com/projectkaka/inventory/data/repository/InventoryRepositoryImpl.kt`)
- Budget and statements → Finance repository: reads budget data
- Ledger and liquidation → Finance repository: manages ledger
- Finance repository → Minor-unit money: uses amounts (evidence: `app/src/main/java/com/projectkaka/inventory/data/repository/FinanceRepositoryImpl.kt`)
- Terminal session → Terminal commands: executes commands (evidence: `app/src/main/java/com/projectkaka/inventory/ui/settings/TerminalSessionManager.kt`)
- Terminal session → Android system: starts overlay (evidence: `app/src/main/java/com/projectkaka/inventory/ui/settings/TerminalSessionManager.kt`)
- Power search grammar → Inventory repository: filters inventory (evidence: `README.md`)
- Inventory repository → Room database: accesses Room (evidence: `app/src/main/java/com/projectkaka/inventory/data/repository/InventoryRepositoryImpl.kt`)
- Finance repository → Room database: uses transactions (evidence: `app/src/main/java/com/projectkaka/inventory/data/repository/FinanceRepositoryImpl.kt`)
- Room database → Inventory records: stores items (evidence: `app/src/main/java/com/projectkaka/inventory/data/local/AppDatabase.kt`)
- Room database → Financial records: stores accounts (evidence: `app/src/main/java/com/projectkaka/inventory/data/local/AppDatabase.kt`)
- Dependency container → Document management: provides documents (evidence: `app/src/main/java/com/projectkaka/inventory/KakaApplication.kt`)
- Document management → Room database: persists documents (evidence: `app/src/main/java/com/projectkaka/inventory/data/repository/DocumentRepositoryImpl.kt`)
- Backup and export → Room database: backs up database (evidence: `README.md`)
- Backup and export → Local image stores: archives images (evidence: `README.md`)
- Compose app UI → Backup and export: offers export (evidence: `README.md`)
- Compose app UI → Privacy preferences: configures privacy (evidence: `README.md`)
- Room database → Local image stores: stores image paths
