# marcelofantin/appvendasandroid architecture

> Architecture diagram of the GitHub repository marcelofantin/appvendasandroid, 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/marcelofantin/appvendasandroid
- Repository: https://github.com/marcelofantin/appvendasandroid

## Overview

This is a Kivy sales-management app. The principal workflow is to authenticate a seller, load their account and sales, add a sale, and update the displayed totals; users can also browse team sellers and their sales. The graph preserves account/authentication, seller management, all-sales and profile/settings screens alongside that workflow. Edges reflect shown calls and requests; unsampled KV bindings and other UI wiring are not inferred.

Main entry points: [`main.py`](https://github.com/marcelofantin/appvendasandroid/blob/main/main.py) (Kivy app), [`myfirebase.py`](https://github.com/marcelofantin/appvendasandroid/blob/main/myfirebase.py) (Account authentication), [`bannervendas.py`](https://github.com/marcelofantin/appvendasandroid/blob/main/bannervendas.py) (Sale display), [`bannervendedor.py`](https://github.com/marcelofantin/appvendasandroid/blob/main/bannervendedor.py) (Seller display)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App and screens"]
  node_app["Kivy app<br/>[main.py]"]
  node_screens["Screen classes<br/>[telas.py]"]
  node_screen_layouts["Screen layouts"]
  node_controls["Button controls<br/>[botoes.py]"]
  node_profile_assets["Profile photos"]
  node_profile_settings["Profile and settings<br/>[main.py]"]
end

subgraph group_sales["Sales workflow"]
  node_sales_assets["Customer and product photos"]
  node_sale_entry["Add sale<br/>[main.py]"]
  node_sales_home["Home sales list<br/>[main.py]"]
  node_sale_banner["Sale display<br/>[bannervendas.py]"]
  node_all_sales["All sales<br/>[main.py]"]
  node_seller_sales["Seller sales<br/>[main.py]"]
end

subgraph group_team["Seller management"]
  node_team_list["Team seller list<br/>[main.py]"]
  node_seller_banner["Seller display<br/>[bannervendedor.py]"]
  node_add_seller["Add team seller<br/>[main.py]"]
end

subgraph group_services["Authentication and data"]
  node_login["Account authentication<br/>[myfirebase.py]"]
  node_seller_setup["Account setup<br/>[myfirebase.py]"]
  node_firebase[("Firebase database")]
  node_identity["Firebase identity service"]
end

node_user(("Seller"))

node_user -.->|"uses"| node_app
node_app -->|"handles sale"| node_sale_entry
node_app -->|"loads sales"| node_all_sales
node_app -->|"loads seller sales"| node_seller_sales
node_app -->|"loads sellers"| node_team_list
node_app -->|"updates profile"| node_profile_settings
node_app -->|"reads and writes"| node_firebase
node_app -->|"creates display"| node_sale_banner
node_app -->|"creates display"| node_seller_banner
node_seller_banner -->|"looks up seller"| node_firebase
node_sale_entry -->|"saves sale"| node_firebase
node_sale_entry -->|"adds display"| node_sales_home
node_all_sales -->|"creates displays"| node_sale_banner
node_seller_sales -->|"creates displays"| node_sale_banner
node_app -->|"loads photos"| node_profile_assets
node_app -->|"loads photos"| node_sales_assets
node_login -->|"authenticates"| node_identity
node_login -->|"creates account data"| node_firebase
node_login -->|"loads account"| node_app
node_seller_setup -->|"allocates seller ID"| node_firebase
node_app -.->|"manages account"| node_seller_setup
node_screens -.->|"defines screens for"| node_screen_layouts
node_controls -.->|"provides controls"| node_team_list

click node_app "https://github.com/marcelofantin/appvendasandroid/blob/main/main.py"
click node_screens "https://github.com/marcelofantin/appvendasandroid/blob/main/telas.py"
click node_screen_layouts "https://github.com/marcelofantin/appvendasandroid/tree/main/kv"
click node_controls "https://github.com/marcelofantin/appvendasandroid/blob/main/botoes.py"
click node_profile_assets "https://github.com/marcelofantin/appvendasandroid/tree/main/icones/fotos_perfil"
click node_sales_assets "https://github.com/marcelofantin/appvendasandroid/tree/main/icones"
click node_sale_entry "https://github.com/marcelofantin/appvendasandroid/blob/main/main.py"
click node_sales_home "https://github.com/marcelofantin/appvendasandroid/blob/main/main.py"
click node_sale_banner "https://github.com/marcelofantin/appvendasandroid/blob/main/bannervendas.py"
click node_all_sales "https://github.com/marcelofantin/appvendasandroid/blob/main/main.py"
click node_seller_sales "https://github.com/marcelofantin/appvendasandroid/blob/main/main.py"
click node_login "https://github.com/marcelofantin/appvendasandroid/blob/main/myfirebase.py"
click node_seller_setup "https://github.com/marcelofantin/appvendasandroid/blob/main/myfirebase.py"
click node_profile_settings "https://github.com/marcelofantin/appvendasandroid/blob/main/main.py"
click node_team_list "https://github.com/marcelofantin/appvendasandroid/blob/main/main.py"
click node_seller_banner "https://github.com/marcelofantin/appvendasandroid/blob/main/bannervendedor.py"
click node_add_seller "https://github.com/marcelofantin/appvendasandroid/blob/main/main.py"

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_screens,node_screen_layouts,node_controls,node_profile_assets,node_profile_settings toneBlue
class node_sales_assets,node_sale_entry,node_sales_home,node_sale_banner,node_all_sales,node_seller_sales toneAmber
class node_team_list,node_seller_banner,node_add_seller toneMint
class node_login,node_seller_setup,node_firebase,node_identity toneRose
class node_user toneIndigo
```

## Components

### App and screens

- [Kivy app](https://github.com/marcelofantin/appvendasandroid/blob/main/main.py): `main.py`
- [Screen classes](https://github.com/marcelofantin/appvendasandroid/blob/main/telas.py): `telas.py`
- [Screen layouts](https://github.com/marcelofantin/appvendasandroid/tree/main/kv): `kv`
- [Button controls](https://github.com/marcelofantin/appvendasandroid/blob/main/botoes.py): `botoes.py`
- [Profile photos](https://github.com/marcelofantin/appvendasandroid/tree/main/icones/fotos_perfil): `icones/fotos_perfil`
- [Profile and settings](https://github.com/marcelofantin/appvendasandroid/blob/main/main.py): `main.py`

### Sales workflow

- [Customer and product photos](https://github.com/marcelofantin/appvendasandroid/tree/main/icones): `icones`
- [Add sale](https://github.com/marcelofantin/appvendasandroid/blob/main/main.py): `main.py`
- [Home sales list](https://github.com/marcelofantin/appvendasandroid/blob/main/main.py): `main.py`
- [Sale display](https://github.com/marcelofantin/appvendasandroid/blob/main/bannervendas.py): `bannervendas.py`
- [All sales](https://github.com/marcelofantin/appvendasandroid/blob/main/main.py): `main.py`
- [Seller sales](https://github.com/marcelofantin/appvendasandroid/blob/main/main.py): `main.py`

### Seller management

- [Team seller list](https://github.com/marcelofantin/appvendasandroid/blob/main/main.py): `main.py`
- [Seller display](https://github.com/marcelofantin/appvendasandroid/blob/main/bannervendedor.py): `bannervendedor.py`
- [Add team seller](https://github.com/marcelofantin/appvendasandroid/blob/main/main.py): `main.py`

### Authentication and data

- [Account authentication](https://github.com/marcelofantin/appvendasandroid/blob/main/myfirebase.py): `myfirebase.py`
- [Account setup](https://github.com/marcelofantin/appvendasandroid/blob/main/myfirebase.py): `myfirebase.py`
- **Firebase database**
- **Firebase identity service**

### Other components

- **Seller**

## Connections

- Seller → Kivy app: uses
- Kivy app → Add sale: handles sale (evidence: `main.py`)
- Kivy app → All sales: loads sales (evidence: `main.py`)
- Kivy app → Seller sales: loads seller sales (evidence: `main.py`)
- Kivy app → Team seller list: loads sellers (evidence: `main.py`)
- Kivy app → Profile and settings: updates profile (evidence: `main.py`)
- Kivy app → Firebase database: reads and writes (evidence: `main.py`)
- Kivy app → Sale display: creates display (evidence: `main.py`)
- Kivy app → Seller display: creates display (evidence: `main.py`)
- Seller display → Firebase database: looks up seller (evidence: `bannervendedor.py`)
- Add sale → Firebase database: saves sale (evidence: `main.py`)
- Add sale → Home sales list: adds display (evidence: `main.py`)
- All sales → Sale display: creates displays (evidence: `main.py`)
- Seller sales → Sale display: creates displays (evidence: `main.py`)
- Kivy app → Profile photos: loads photos (evidence: `main.py`)
- Kivy app → Customer and product photos: loads photos (evidence: `main.py`)
- Account authentication → Firebase identity service: authenticates (evidence: `myfirebase.py`)
- Account authentication → Firebase database: creates account data (evidence: `myfirebase.py`)
- Account authentication → Kivy app: loads account (evidence: `myfirebase.py`)
- Account setup → Firebase database: allocates seller ID (evidence: `myfirebase.py`)
- Kivy app → Account setup: manages account (evidence: `main.py`)
- Screen classes → Screen layouts: defines screens for
- Button controls → Team seller list: provides controls (evidence: `main.py`)
