# irfan-v-creator/ice-track- architecture

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

- Interactive diagram: https://gitdiagram.com/irfan-v-creator/ice-track-
- Repository: https://github.com/irfan-v-creator/ice-track-

## Overview

IceTrack appears to be an Android app for inventory and small-business operations: users navigate operational screens, with view models and repositories plausibly connecting those workflows to local data and domain calculations. The tree also identifies sales, purchasing, expenses, customer and supplier management, subledger calculations, settings, and notifications. No README or runtime source excerpts were provided, so these relationships are inferred from names and remain unverified; the graph omits unsupported call-level detail.

Main entry points: [`app/src/main/java/com/example/ui/viewmodel`](https://github.com/irfan-v-creator/ice-track-/tree/main/app/src/main/java/com/example/ui/viewmodel) (Feature view models), [`app/src/main/java/com/example/ui/navigation/Navigation.kt`](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/navigation/Navigation.kt) (App navigation), [`app/src/main/java/com/example/MainActivity.kt`](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/MainActivity.kt) (Main activity), [`app/src/main/java/com/example/ui/screens/SalesBillingScreen.kt`](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/SalesBillingScreen.kt) (Sales billing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["App entry and navigation"]
  node_main["Main activity<br/>[MainActivity.kt]"]
  node_navigation["App navigation<br/>[Navigation.kt]"]
end

subgraph group_operations["Business operations"]
  node_sales["Sales billing"]
  node_purchases["Purchases"]
  node_inventory["Inventory stock"]
  node_products["Products<br/>[ProductScreens.kt]"]
  node_customers["Customers<br/>[CustomerScreens.kt]"]
  node_suppliers["Suppliers<br/>[SupplierScreens.kt]"]
  node_expenses["Expenses<br/>[ExpensesScreen.kt]"]
  node_subledger["Subledger<br/>[SubledgerScreen.kt]"]
  node_dashboard["Dashboard<br/>[DashboardScreen.kt]"]
  node_settings["Settings<br/>[SettingsScreen.kt]"]
  node_viewmodels["Feature view models"]
  node_notifications["Notifications"]
end

subgraph group_domain["Domain calculations"]
  node_fefo["FEFO inventory"]
  node_payment["Payment allocation"]
  node_subledgercalc["Subledger calculation"]
  node_conversion["Unit conversion"]
  node_models["Domain models<br/>[DomainModels.kt]"]
end

subgraph group_data["Local data"]
  node_repositories["Repositories<br/>[Repositories.kt]"]
  node_dao["Database access<br/>[Daos.kt]"]
  node_database[("Local database")]
  node_entities["Stored entities<br/>[Entities.kt]"]
end

node_user(("Business user"))

node_user -.->|"opens app"| node_main
node_main -.->|"starts navigation"| node_navigation
node_navigation -.->|"routes to"| node_sales
node_navigation -.->|"routes to"| node_purchases
node_navigation -.->|"routes to"| node_inventory
node_navigation -.->|"routes to"| node_products
node_navigation -.->|"routes to"| node_customers
node_navigation -.->|"routes to"| node_suppliers
node_navigation -.->|"routes to"| node_expenses
node_navigation -.->|"routes to"| node_subledger
node_navigation -.->|"routes to"| node_dashboard
node_navigation -.->|"routes to"| node_settings
node_sales -.->|"uses"| node_viewmodels
node_purchases -.->|"uses"| node_viewmodels
node_inventory -.->|"uses"| node_viewmodels
node_products -.->|"uses"| node_viewmodels
node_customers -.->|"uses"| node_viewmodels
node_suppliers -.->|"uses"| node_viewmodels
node_expenses -.->|"uses"| node_viewmodels
node_dashboard -.->|"uses"| node_viewmodels
node_settings -.->|"uses"| node_viewmodels
node_viewmodels -.->|"requests data"| node_repositories
node_repositories -.->|"accesses"| node_dao
node_dao -.->|"queries"| node_database
node_database -.->|"stores"| node_entities
node_viewmodels -.->|"invokes"| node_fefo
node_viewmodels -.->|"invokes"| node_payment
node_viewmodels -.->|"invokes"| node_subledgercalc
node_viewmodels -.->|"invokes"| node_conversion
node_viewmodels -.->|"may invoke"| node_notifications

click node_main "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/MainActivity.kt"
click node_navigation "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/navigation/Navigation.kt"
click node_sales "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/SalesBillingScreen.kt"
click node_purchases "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/PurchaseManagementScreen.kt"
click node_inventory "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/InventoryStockScreen.kt"
click node_products "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/ProductScreens.kt"
click node_customers "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/CustomerScreens.kt"
click node_suppliers "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/SupplierScreens.kt"
click node_expenses "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/ExpensesScreen.kt"
click node_subledger "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/SubledgerScreen.kt"
click node_dashboard "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/DashboardScreen.kt"
click node_settings "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/SettingsScreen.kt"
click node_viewmodels "https://github.com/irfan-v-creator/ice-track-/tree/main/app/src/main/java/com/example/ui/viewmodel"
click node_fefo "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/domain/engine/FefoInventoryEngine.kt"
click node_payment "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/domain/engine/PaymentAllocationEngine.kt"
click node_subledgercalc "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/domain/engine/SubledgerCalculationEngine.kt"
click node_conversion "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/domain/engine/UnitConversionEngine.kt"
click node_models "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/domain/model/DomainModels.kt"
click node_repositories "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/data/repository/Repositories.kt"
click node_dao "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/data/local/dao/Daos.kt"
click node_database "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/data/local/IceTrackDatabase.kt"
click node_entities "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/data/local/entity/Entities.kt"
click node_notifications "https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/service/NotificationService.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_main,node_navigation,node_user toneBlue
class node_sales,node_purchases,node_inventory,node_products,node_customers,node_suppliers,node_expenses,node_subledger,node_dashboard,node_settings,node_viewmodels,node_notifications toneAmber
class node_fefo,node_payment,node_subledgercalc,node_conversion,node_models toneMint
class node_repositories,node_dao,node_database,node_entities toneRose
```

## Components

### App entry and navigation

- [Main activity](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/MainActivity.kt): `app/src/main/java/com/example/MainActivity.kt`
- [App navigation](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/navigation/Navigation.kt): `app/src/main/java/com/example/ui/navigation/Navigation.kt`

### Business operations

- [Sales billing](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/SalesBillingScreen.kt): `app/src/main/java/com/example/ui/screens/SalesBillingScreen.kt`
- [Purchases](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/PurchaseManagementScreen.kt): `app/src/main/java/com/example/ui/screens/PurchaseManagementScreen.kt`
- [Inventory stock](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/InventoryStockScreen.kt): `app/src/main/java/com/example/ui/screens/InventoryStockScreen.kt`
- [Products](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/ProductScreens.kt): `app/src/main/java/com/example/ui/screens/ProductScreens.kt`
- [Customers](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/CustomerScreens.kt): `app/src/main/java/com/example/ui/screens/CustomerScreens.kt`
- [Suppliers](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/SupplierScreens.kt): `app/src/main/java/com/example/ui/screens/SupplierScreens.kt`
- [Expenses](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/ExpensesScreen.kt): `app/src/main/java/com/example/ui/screens/ExpensesScreen.kt`
- [Subledger](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/SubledgerScreen.kt): `app/src/main/java/com/example/ui/screens/SubledgerScreen.kt`
- [Dashboard](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/DashboardScreen.kt): `app/src/main/java/com/example/ui/screens/DashboardScreen.kt`
- [Settings](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/ui/screens/SettingsScreen.kt): `app/src/main/java/com/example/ui/screens/SettingsScreen.kt`
- [Feature view models](https://github.com/irfan-v-creator/ice-track-/tree/main/app/src/main/java/com/example/ui/viewmodel): `app/src/main/java/com/example/ui/viewmodel`
- [Notifications](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/service/NotificationService.kt): `app/src/main/java/com/example/service/NotificationService.kt`

### Domain calculations

- [FEFO inventory](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/domain/engine/FefoInventoryEngine.kt): `app/src/main/java/com/example/domain/engine/FefoInventoryEngine.kt`
- [Payment allocation](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/domain/engine/PaymentAllocationEngine.kt): `app/src/main/java/com/example/domain/engine/PaymentAllocationEngine.kt`
- [Subledger calculation](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/domain/engine/SubledgerCalculationEngine.kt): `app/src/main/java/com/example/domain/engine/SubledgerCalculationEngine.kt`
- [Unit conversion](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/domain/engine/UnitConversionEngine.kt): `app/src/main/java/com/example/domain/engine/UnitConversionEngine.kt`
- [Domain models](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/domain/model/DomainModels.kt): `app/src/main/java/com/example/domain/model/DomainModels.kt`

### Local data

- [Repositories](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/data/repository/Repositories.kt): `app/src/main/java/com/example/data/repository/Repositories.kt`
- [Database access](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/data/local/dao/Daos.kt): `app/src/main/java/com/example/data/local/dao/Daos.kt`
- [Local database](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/data/local/IceTrackDatabase.kt): `app/src/main/java/com/example/data/local/IceTrackDatabase.kt`
- [Stored entities](https://github.com/irfan-v-creator/ice-track-/blob/main/app/src/main/java/com/example/data/local/entity/Entities.kt): `app/src/main/java/com/example/data/local/entity/Entities.kt`

### Other components

- **Business user**

## Connections

- Business user → Main activity: opens app
- Main activity → App navigation: starts navigation
- App navigation → Sales billing: routes to
- App navigation → Purchases: routes to
- App navigation → Inventory stock: routes to
- App navigation → Products: routes to
- App navigation → Customers: routes to
- App navigation → Suppliers: routes to
- App navigation → Expenses: routes to
- App navigation → Subledger: routes to
- App navigation → Dashboard: routes to
- App navigation → Settings: routes to
- Sales billing → Feature view models: uses
- Purchases → Feature view models: uses
- Inventory stock → Feature view models: uses
- Products → Feature view models: uses
- Customers → Feature view models: uses
- Suppliers → Feature view models: uses
- Expenses → Feature view models: uses
- Dashboard → Feature view models: uses
- Settings → Feature view models: uses
- Feature view models → Repositories: requests data
- Repositories → Database access: accesses
- Database access → Local database: queries
- Local database → Stored entities: stores
- Feature view models → FEFO inventory: invokes
- Feature view models → Payment allocation: invokes
- Feature view models → Subledger calculation: invokes
- Feature view models → Unit conversion: invokes
- Feature view models → Notifications: may invoke
