# itsluuis/finame architecture

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

- Interactive diagram: https://gitdiagram.com/itsluuis/finame
- Repository: https://github.com/itsluuis/finame
- Video tour (about a minute): https://gitdiagram.com/itsluuis/finame/video

## Overview

Finame is a multiplatform sales-management app. Its apparent workflow is to open a shared dashboard, use sales and financial domain data, and track orders and payments offline; supporting capabilities include BCV-rate retrieval, reorder predictions, historical-quote parsing, and monthly report export. The sampled app wiring confirms the dashboard receives platform mail and HTTP services, while the repository stores orders and rates in memory. README provides no product detail, and the dashboard and several domain modules were not sampled, so their internal wiring is intentionally not inferred.

Main entry points: [`shared/src/commonMain/kotlin/App.kt`](https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/App.kt) (Shared app), [`androidApp/src/androidMain/kotlin/com/myapplication/MainActivity.kt`](https://github.com/itsluuis/finame/blob/main/androidApp/src/androidMain/kotlin/com/myapplication/MainActivity.kt) (Android entry), [`desktopApp/src/jvmMain/kotlin/main.kt`](https://github.com/itsluuis/finame/blob/main/desktopApp/src/jvmMain/kotlin/main.kt) (Desktop entry), [`shared/src/commonMain/kotlin/com/appmama/platform/HttpFetcher.kt`](https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/platform/HttpFetcher.kt) (HTTP abstraction)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["App entry"]
  node_app["Shared app<br/>[App.kt]"]
  node_dashboard["Dashboard<br/>[DashboardScreen.kt]"]
  node_android["Android entry<br/>[MainActivity.kt]"]
  node_desktop["Desktop entry<br/>[main.kt]"]
end

subgraph group_sales["Sales and finance"]
  node_finance["Order models<br/>[FinancialModels.kt]"]
  node_entities["Local entities<br/>[LocalEntities.kt]"]
  node_repository[("Offline repository")]
end

subgraph group_insights["Rates and insights"]
  node_bcv["BCV rates<br/>[BcvRateService.kt]"]
  node_prediction["Reorder prediction"]
  node_quoteparser["Quote parser"]
  node_report["Monthly exporter"]
end

subgraph group_platform["Platform services"]
  node_http["HTTP abstraction<br/>[HttpFetcher.kt]"]
  node_androidhttp["Android HTTP"]
  node_desktophttp["Desktop HTTP"]
  node_mail["Mail abstraction<br/>[MailLauncher.kt]"]
  node_androidmail["Android mail"]
  node_desktopmail["Desktop mail"]
end

node_user(("App user"))
node_rateapi{{"Rate API"}}

node_user -->|"opens"| node_android
node_user -->|"opens"| node_desktop
node_android -->|"hosts"| node_app
node_desktop -->|"hosts"| node_app
node_app -->|"renders"| node_dashboard
node_app -->|"provides"| node_mail
node_app -->|"provides"| node_http
node_android -->|"selects"| node_androidhttp
node_desktop -->|"selects"| node_desktophttp
node_android -->|"selects"| node_androidmail
node_desktop -->|"selects"| node_desktopmail
node_androidhttp -->|"implements"| node_http
node_desktophttp -->|"implements"| node_http
node_androidmail -->|"implements"| node_mail
node_desktopmail -->|"implements"| node_mail
node_bcv -->|"fetches via"| node_http
node_bcv -->|"requests rates"| node_rateapi

click node_app "https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/App.kt"
click node_dashboard "https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/ui/dashboard/DashboardScreen.kt"
click node_android "https://github.com/itsluuis/finame/blob/main/androidApp/src/androidMain/kotlin/com/myapplication/MainActivity.kt"
click node_desktop "https://github.com/itsluuis/finame/blob/main/desktopApp/src/jvmMain/kotlin/main.kt"
click node_finance "https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/domain/finance/FinancialModels.kt"
click node_entities "https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/data/local/models/LocalEntities.kt"
click node_repository "https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/data/repository/OfflineSalesRepository.kt"
click node_bcv "https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/data/bcv/BcvRateService.kt"
click node_prediction "https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/domain/engine/ReorderPredictionEngine.kt"
click node_quoteparser "https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/domain/parser/HistoricalQuoteParser.kt"
click node_report "https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/domain/export/MonthlyReportExporter.kt"
click node_http "https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/platform/HttpFetcher.kt"
click node_androidhttp "https://github.com/itsluuis/finame/blob/main/shared/src/androidMain/kotlin/com/appmama/platform/AndroidHttpFetcher.kt"
click node_desktophttp "https://github.com/itsluuis/finame/blob/main/shared/src/desktopMain/kotlin/com/appmama/platform/DesktopHttpFetcher.kt"
click node_mail "https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/platform/MailLauncher.kt"
click node_androidmail "https://github.com/itsluuis/finame/blob/main/shared/src/androidMain/kotlin/com/appmama/platform/AndroidMailLauncher.kt"
click node_desktopmail "https://github.com/itsluuis/finame/blob/main/shared/src/desktopMain/kotlin/com/appmama/platform/DesktopMailLauncher.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_app,node_dashboard,node_android,node_desktop,node_user toneBlue
class node_finance,node_entities,node_repository toneAmber
class node_bcv,node_prediction,node_quoteparser,node_report,node_rateapi toneMint
class node_http,node_androidhttp,node_desktophttp,node_mail,node_androidmail,node_desktopmail toneRose
```

## Components

### App entry

- [Shared app](https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/App.kt): `shared/src/commonMain/kotlin/App.kt`
- [Dashboard](https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/ui/dashboard/DashboardScreen.kt): `shared/src/commonMain/kotlin/com/appmama/ui/dashboard/DashboardScreen.kt`
- [Android entry](https://github.com/itsluuis/finame/blob/main/androidApp/src/androidMain/kotlin/com/myapplication/MainActivity.kt): `androidApp/src/androidMain/kotlin/com/myapplication/MainActivity.kt`
- [Desktop entry](https://github.com/itsluuis/finame/blob/main/desktopApp/src/jvmMain/kotlin/main.kt): `desktopApp/src/jvmMain/kotlin/main.kt`

### Sales and finance

- [Order models](https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/domain/finance/FinancialModels.kt): `shared/src/commonMain/kotlin/com/appmama/domain/finance/FinancialModels.kt`
- [Local entities](https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/data/local/models/LocalEntities.kt): `shared/src/commonMain/kotlin/com/appmama/data/local/models/LocalEntities.kt`
- [Offline repository](https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/data/repository/OfflineSalesRepository.kt): `shared/src/commonMain/kotlin/com/appmama/data/repository/OfflineSalesRepository.kt`

### Rates and insights

- [BCV rates](https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/data/bcv/BcvRateService.kt): `shared/src/commonMain/kotlin/com/appmama/data/bcv/BcvRateService.kt`
- [Reorder prediction](https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/domain/engine/ReorderPredictionEngine.kt): `shared/src/commonMain/kotlin/com/appmama/domain/engine/ReorderPredictionEngine.kt`
- [Quote parser](https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/domain/parser/HistoricalQuoteParser.kt): `shared/src/commonMain/kotlin/com/appmama/domain/parser/HistoricalQuoteParser.kt`
- [Monthly exporter](https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/domain/export/MonthlyReportExporter.kt): `shared/src/commonMain/kotlin/com/appmama/domain/export/MonthlyReportExporter.kt`

### Platform services

- [HTTP abstraction](https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/platform/HttpFetcher.kt): `shared/src/commonMain/kotlin/com/appmama/platform/HttpFetcher.kt`
- [Android HTTP](https://github.com/itsluuis/finame/blob/main/shared/src/androidMain/kotlin/com/appmama/platform/AndroidHttpFetcher.kt): `shared/src/androidMain/kotlin/com/appmama/platform/AndroidHttpFetcher.kt`
- [Desktop HTTP](https://github.com/itsluuis/finame/blob/main/shared/src/desktopMain/kotlin/com/appmama/platform/DesktopHttpFetcher.kt): `shared/src/desktopMain/kotlin/com/appmama/platform/DesktopHttpFetcher.kt`
- [Mail abstraction](https://github.com/itsluuis/finame/blob/main/shared/src/commonMain/kotlin/com/appmama/platform/MailLauncher.kt): `shared/src/commonMain/kotlin/com/appmama/platform/MailLauncher.kt`
- [Android mail](https://github.com/itsluuis/finame/blob/main/shared/src/androidMain/kotlin/com/appmama/platform/AndroidMailLauncher.kt): `shared/src/androidMain/kotlin/com/appmama/platform/AndroidMailLauncher.kt`
- [Desktop mail](https://github.com/itsluuis/finame/blob/main/shared/src/desktopMain/kotlin/com/appmama/platform/DesktopMailLauncher.kt): `shared/src/desktopMain/kotlin/com/appmama/platform/DesktopMailLauncher.kt`

### Other components

- **App user**
- **Rate API**

## Connections

- App user → Android entry: opens
- App user → Desktop entry: opens
- Android entry → Shared app: hosts
- Desktop entry → Shared app: hosts
- Shared app → Dashboard: renders
- Shared app → Mail abstraction: provides
- Shared app → HTTP abstraction: provides
- Android entry → Android HTTP: selects
- Desktop entry → Desktop HTTP: selects
- Android entry → Android mail: selects
- Desktop entry → Desktop mail: selects
- Android HTTP → HTTP abstraction: implements
- Desktop HTTP → HTTP abstraction: implements
- Android mail → Mail abstraction: implements
- Desktop mail → Mail abstraction: implements
- BCV rates → HTTP abstraction: fetches via
- BCV rates → Rate API: requests rates
