# lorenzi-04/app-gestor-de-gastos architecture

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

- Interactive diagram: https://gitdiagram.com/lorenzi-04/app-gestor-de-gastos
- Repository: https://github.com/lorenzi-04/app-gestor-de-gastos

## Overview

This is a Flutter expense-tracking app: its visible product modules cover expenses, categories, transaction types, persistence, and an expense-entry interface. The sampled files show only desktop runner startup and window hosting; no README or Dart excerpts establish the app’s runtime data flow, so those connections are left out. The graph includes the platform runner components identified as core by the source index, but does not infer how the unsampled Dart modules call one another.

Main entry points: [`windows/runner/flutter_window.h`](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/windows/runner/flutter_window.h) (Flutter window), [`windows/runner/main.cpp`](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/windows/runner/main.cpp) (Windows startup), [`linux/runner/main.cc`](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/linux/runner/main.cc) (Linux startup), [`windows/runner/win32_window.cpp`](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/windows/runner/win32_window.cpp) (Win32 window)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Expense app"]
  node_entry["App entry<br/>[main.dart]"]
  node_home["Expense home<br/>[home_screen.dart]"]
  node_entryform["Expense entry"]
  node_controller["Expense controller"]
  node_expense["Expense model<br/>[expense.dart]"]
  node_category["Expense categories"]
  node_transaction["Transaction types"]
  node_database[("Expense database")]
end

subgraph group_desktop["Desktop runners"]
  node_winmain["Windows startup<br/>[main.cpp]"]
  node_flutterwindow["Flutter window<br/>[flutter_window.h]"]
  node_winwindow["Win32 window<br/>[win32_window.cpp]"]
  node_linuxmain["Linux startup<br/>[main.cc]"]
  node_linuxapp["GTK application<br/>[my_application.h]"]
end

subgraph group_plugins["Plugin registration"]
  node_winplugins["Windows plugins"]
  node_linuxplugins["Linux plugins"]
  node_macplugins["macOS plugins"]
end

node_user(("App user"))

node_winmain -->|"creates"| node_flutterwindow
node_flutterwindow -->|"inherits"| node_winwindow
node_linuxmain -->|"creates"| node_linuxapp

click node_entry "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/main.dart"
click node_home "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/views/home_screen.dart"
click node_entryform "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/widgets/add_expense_sheet.dart"
click node_controller "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/controllers/expense_controller.dart"
click node_expense "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/models/expense.dart"
click node_category "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/models/expense_category.dart"
click node_transaction "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/models/transaction_type.dart"
click node_database "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/services/expense_database.dart"
click node_winmain "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/windows/runner/main.cpp"
click node_flutterwindow "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/windows/runner/flutter_window.h"
click node_winwindow "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/windows/runner/win32_window.cpp"
click node_linuxmain "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/linux/runner/main.cc"
click node_linuxapp "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/linux/runner/my_application.h"
click node_winplugins "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/windows/flutter/generated_plugin_registrant.h"
click node_linuxplugins "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/linux/flutter/generated_plugin_registrant.h"
click node_macplugins "https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/macos/Flutter/GeneratedPluginRegistrant.swift"

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_entry,node_home,node_entryform,node_controller,node_expense,node_category,node_transaction,node_database,node_user toneBlue
class node_winmain,node_flutterwindow,node_winwindow,node_linuxmain,node_linuxapp toneAmber
class node_winplugins,node_linuxplugins,node_macplugins toneMint
```

## Components

### Expense app

- [App entry](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/main.dart): `lib/main.dart`
- [Expense home](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/views/home_screen.dart): `lib/views/home_screen.dart`
- [Expense entry](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/widgets/add_expense_sheet.dart): `lib/widgets/add_expense_sheet.dart`
- [Expense controller](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/controllers/expense_controller.dart): `lib/controllers/expense_controller.dart`
- [Expense model](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/models/expense.dart): `lib/models/expense.dart`
- [Expense categories](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/models/expense_category.dart): `lib/models/expense_category.dart`
- [Transaction types](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/models/transaction_type.dart): `lib/models/transaction_type.dart`
- [Expense database](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/lib/services/expense_database.dart): `lib/services/expense_database.dart`

### Desktop runners

- [Windows startup](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/windows/runner/main.cpp): `windows/runner/main.cpp`
- [Flutter window](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/windows/runner/flutter_window.h): `windows/runner/flutter_window.h`
- [Win32 window](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/windows/runner/win32_window.cpp): `windows/runner/win32_window.cpp`
- [Linux startup](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/linux/runner/main.cc): `linux/runner/main.cc`
- [GTK application](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/linux/runner/my_application.h): `linux/runner/my_application.h`

### Plugin registration

- [Windows plugins](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/windows/flutter/generated_plugin_registrant.h): `windows/flutter/generated_plugin_registrant.h`
- [Linux plugins](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/linux/flutter/generated_plugin_registrant.h): `linux/flutter/generated_plugin_registrant.h`
- [macOS plugins](https://github.com/lorenzi-04/app-gestor-de-gastos/blob/main/macos/Flutter/GeneratedPluginRegistrant.swift): `macos/Flutter/GeneratedPluginRegistrant.swift`

### Other components

- **App user**

## Connections

- Windows startup → Flutter window: creates (evidence: `windows/runner/main.cpp`)
- Flutter window → Win32 window: inherits (evidence: `windows/runner/flutter_window.h`)
- Linux startup → GTK application: creates (evidence: `linux/runner/main.cc`)
