# desmantelar-bit/usina-app architecture

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

- Interactive diagram: https://gitdiagram.com/desmantelar-bit/usina-app
- Repository: https://github.com/desmantelar-bit/usina-app

## Overview

Usina App is a Flutter application whose visible product surface comprises login, a principal screen, and cadastro screens for users, units, equipment, harvests, indicators, measurements, and related information types. The likely user journey is to enter through login, reach the principal screen, and use a cadastro screen to manage domain records. The README provides no product-specific workflow details, and the Dart source was not sampled, so these UI transitions are shown as unverified. Platform runner excerpts establish how native hosts launch Flutter; they do not establish the Dart-side calls.

Main entry points: [`lib/screens/login_page.dart`](https://github.com/desmantelar-bit/usina-app/blob/main/lib/screens/login_page.dart) (Login), [`lib/screens/tela_principal.dart`](https://github.com/desmantelar-bit/usina-app/blob/main/lib/screens/tela_principal.dart) (Principal screen), [`lib/screens/cadastros`](https://github.com/desmantelar-bit/usina-app/tree/main/lib/screens/cadastros) (Cadastro screens), [`linux/runner/my_application.cc`](https://github.com/desmantelar-bit/usina-app/blob/main/linux/runner/my_application.cc) (Linux application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_users["Users"]
end

subgraph group_flutter["Flutter app"]
  node_login["Login<br/>[login_page.dart]"]
  node_home["Principal screen"]
  node_cadastros["Cadastro screens"]
  node_camera["Camera preview"]
  node_entry["Flutter entry<br/>[main.dart]"]
end

subgraph group_domain["Domain records"]
  node_models["Domain models"]
end

subgraph group_native["Native hosts"]
  node_linux_main["Linux launcher<br/>[main.cc]"]
  node_linux_app["Linux application<br/>[my_application.cc]"]
  node_linux_app_header["Linux app interface<br/>[my_application.h]"]
  node_linux_plugins["Linux plugin registry"]
  node_windows_main["Windows launcher<br/>[main.cpp]"]
  node_windows_flutter["Flutter window<br/>[flutter_window.h]"]
  node_windows_window["Win32 window<br/>[win32_window.h]"]
  node_windows_window_impl["Win32 window behavior<br/>[win32_window.cpp]"]
end

node_operator(("App user"))

node_operator -.->|"uses"| node_login
node_login -.->|"continues to"| node_home
node_home -.->|"opens"| node_cadastros
node_cadastros -.->|"uses records"| node_models
node_entry -.->|"starts"| node_login
node_linux_main -->|"creates"| node_linux_app
node_linux_app -->|"implements"| node_linux_app_header
node_windows_main -->|"creates"| node_windows_flutter
node_windows_flutter -->|"extends"| node_windows_window
node_windows_window_impl -->|"implements"| node_windows_window

click node_login "https://github.com/desmantelar-bit/usina-app/blob/main/lib/screens/login_page.dart"
click node_home "https://github.com/desmantelar-bit/usina-app/blob/main/lib/screens/tela_principal.dart"
click node_cadastros "https://github.com/desmantelar-bit/usina-app/tree/main/lib/screens/cadastros"
click node_camera "https://github.com/desmantelar-bit/usina-app/blob/main/lib/screens/cadastros/camera_preview_page.dart"
click node_entry "https://github.com/desmantelar-bit/usina-app/blob/main/lib/main.dart"
click node_models "https://github.com/desmantelar-bit/usina-app/tree/main/lib/models"
click node_linux_main "https://github.com/desmantelar-bit/usina-app/blob/main/linux/runner/main.cc"
click node_linux_app "https://github.com/desmantelar-bit/usina-app/blob/main/linux/runner/my_application.cc"
click node_linux_app_header "https://github.com/desmantelar-bit/usina-app/blob/main/linux/runner/my_application.h"
click node_linux_plugins "https://github.com/desmantelar-bit/usina-app/blob/main/linux/flutter/generated_plugin_registrant.h"
click node_windows_main "https://github.com/desmantelar-bit/usina-app/blob/main/windows/runner/main.cpp"
click node_windows_flutter "https://github.com/desmantelar-bit/usina-app/blob/main/windows/runner/flutter_window.h"
click node_windows_window "https://github.com/desmantelar-bit/usina-app/blob/main/windows/runner/win32_window.h"
click node_windows_window_impl "https://github.com/desmantelar-bit/usina-app/blob/main/windows/runner/win32_window.cpp"

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_login,node_home,node_cadastros,node_camera,node_entry toneAmber
class node_models toneMint
class node_linux_main,node_linux_app,node_linux_app_header,node_linux_plugins,node_windows_main,node_windows_flutter,node_windows_window,node_windows_window_impl toneRose
class node_operator toneBlue
```

## Components

### Flutter app

- [Login](https://github.com/desmantelar-bit/usina-app/blob/main/lib/screens/login_page.dart): `lib/screens/login_page.dart`
- [Principal screen](https://github.com/desmantelar-bit/usina-app/blob/main/lib/screens/tela_principal.dart): `lib/screens/tela_principal.dart`
- [Cadastro screens](https://github.com/desmantelar-bit/usina-app/tree/main/lib/screens/cadastros): `lib/screens/cadastros`
- [Camera preview](https://github.com/desmantelar-bit/usina-app/blob/main/lib/screens/cadastros/camera_preview_page.dart): `lib/screens/cadastros/camera_preview_page.dart`
- [Flutter entry](https://github.com/desmantelar-bit/usina-app/blob/main/lib/main.dart): `lib/main.dart`

### Domain records

- [Domain models](https://github.com/desmantelar-bit/usina-app/tree/main/lib/models): `lib/models`

### Native hosts

- [Linux launcher](https://github.com/desmantelar-bit/usina-app/blob/main/linux/runner/main.cc): `linux/runner/main.cc`
- [Linux application](https://github.com/desmantelar-bit/usina-app/blob/main/linux/runner/my_application.cc): `linux/runner/my_application.cc`
- [Linux app interface](https://github.com/desmantelar-bit/usina-app/blob/main/linux/runner/my_application.h): `linux/runner/my_application.h`
- [Linux plugin registry](https://github.com/desmantelar-bit/usina-app/blob/main/linux/flutter/generated_plugin_registrant.h): `linux/flutter/generated_plugin_registrant.h`
- [Windows launcher](https://github.com/desmantelar-bit/usina-app/blob/main/windows/runner/main.cpp): `windows/runner/main.cpp`
- [Flutter window](https://github.com/desmantelar-bit/usina-app/blob/main/windows/runner/flutter_window.h): `windows/runner/flutter_window.h`
- [Win32 window](https://github.com/desmantelar-bit/usina-app/blob/main/windows/runner/win32_window.h): `windows/runner/win32_window.h`
- [Win32 window behavior](https://github.com/desmantelar-bit/usina-app/blob/main/windows/runner/win32_window.cpp): `windows/runner/win32_window.cpp`

### Other components

- **App user**

## Connections

- App user → Login: uses
- Login → Principal screen: continues to
- Principal screen → Cadastro screens: opens
- Cadastro screens → Domain models: uses records
- Flutter entry → Login: starts
- Linux launcher → Linux application: creates (evidence: `linux/runner/main.cc`)
- Linux application → Linux app interface: implements (evidence: `linux/runner/my_application.cc`)
- Windows launcher → Flutter window: creates (evidence: `windows/runner/main.cpp`)
- Flutter window → Win32 window: extends (evidence: `windows/runner/flutter_window.h`)
- Win32 window behavior → Win32 window: implements (evidence: `windows/runner/win32_window.cpp`)
