# brunogoomes/fipexcel architecture

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

- Interactive diagram: https://gitdiagram.com/brunogoomes/fipexcel
- Repository: https://github.com/brunogoomes/fipexcel

## Overview

FIPEXCEL is a PySide6 desktop app for looking up FIPE vehicle values and exporting results to Excel. The main workflow selects vehicle type, brand, model, and year, queries Parallelum, then displays vehicle details; a separate code-and-year lookup is also available. Users can add FIPE codes to a local workbook and generate a batch workbook with progress reporting. The excerpts show these responsibilities concentrated in main.py, with ui_main.py defining the interface. README documents capabilities beyond the sampled UI excerpt; edges reflect only relationships evidenced by the excerpts or README.

Main entry points: [`main.py`](https://github.com/brunogoomes/fipexcel/blob/main/main.py) (Main window), [`archives/CODFIPE.xlsx`](https://github.com/brunogoomes/fipexcel/blob/main/archives/CODFIPE.xlsx) (Code workbook), [`ui_main.py`](https://github.com/brunogoomes/fipexcel/blob/main/ui_main.py) (GUI layout)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_gui["Desktop interface"]
  node_window["Main window<br/>[main.py]"]
  node_widgets["GUI layout<br/>[ui_main.py]"]
end

subgraph group_lookup["Vehicle lookup"]
  node_catalog["Vehicle catalog lookup<br/>[main.py]"]
  node_vehicle_details["Vehicle detail lookup<br/>[main.py]"]
  node_code_lookup["FIPE code lookup<br/>[main.py]"]
  node_fipe_api{{"Parallelum FIPE API"}}
end

subgraph group_batch["Batch and Excel"]
  node_local_codes[("Code workbook<br/>[CODFIPE.xlsx]")]
  node_add_code["Add vehicle code<br/>[main.py]"]
  node_batch_worker["Batch export worker<br/>[main.py]"]
  node_progress["Progress reporting<br/>[main.py]"]
  node_excel_output["FIPE Excel output<br/>[main.py]"]
end

node_user(("User"))

node_user -->|"uses"| node_window
node_window -->|"sets up"| node_widgets
node_window -->|"handles selection"| node_catalog
node_catalog -->|"requests catalog"| node_fipe_api
node_window -->|"requests details"| node_vehicle_details
node_vehicle_details -->|"queries vehicle"| node_fipe_api
node_window -->|"handles lookup"| node_code_lookup
node_code_lookup -->|"queries code"| node_fipe_api
node_window -->|"adds entry"| node_add_code
node_add_code -->|"checks code years"| node_fipe_api
node_add_code -->|"appends entry"| node_local_codes
node_window -->|"starts worker"| node_batch_worker
node_batch_worker -->|"reads entries"| node_local_codes
node_batch_worker -->|"fetches values"| node_fipe_api
node_batch_worker -->|"emits updates"| node_progress
node_progress -->|"updates bar"| node_window
node_batch_worker -->|"writes workbook"| node_excel_output

click node_window "https://github.com/brunogoomes/fipexcel/blob/main/main.py"
click node_widgets "https://github.com/brunogoomes/fipexcel/blob/main/ui_main.py"
click node_catalog "https://github.com/brunogoomes/fipexcel/blob/main/main.py"
click node_vehicle_details "https://github.com/brunogoomes/fipexcel/blob/main/main.py"
click node_code_lookup "https://github.com/brunogoomes/fipexcel/blob/main/main.py"
click node_local_codes "https://github.com/brunogoomes/fipexcel/blob/main/archives/CODFIPE.xlsx"
click node_add_code "https://github.com/brunogoomes/fipexcel/blob/main/main.py"
click node_batch_worker "https://github.com/brunogoomes/fipexcel/blob/main/main.py"
click node_progress "https://github.com/brunogoomes/fipexcel/blob/main/main.py"
click node_excel_output "https://github.com/brunogoomes/fipexcel/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_window,node_widgets,node_user toneBlue
class node_catalog,node_vehicle_details,node_code_lookup,node_fipe_api toneAmber
class node_local_codes,node_add_code,node_batch_worker,node_progress,node_excel_output toneMint
```

## Components

### Desktop interface

- [Main window](https://github.com/brunogoomes/fipexcel/blob/main/main.py): `main.py`
- [GUI layout](https://github.com/brunogoomes/fipexcel/blob/main/ui_main.py): `ui_main.py`

### Vehicle lookup

- [Vehicle catalog lookup](https://github.com/brunogoomes/fipexcel/blob/main/main.py): `main.py`
- [Vehicle detail lookup](https://github.com/brunogoomes/fipexcel/blob/main/main.py): `main.py`
- [FIPE code lookup](https://github.com/brunogoomes/fipexcel/blob/main/main.py): `main.py`
- **Parallelum FIPE API**

### Batch and Excel

- [Code workbook](https://github.com/brunogoomes/fipexcel/blob/main/archives/CODFIPE.xlsx): `archives/CODFIPE.xlsx`
- [Add vehicle code](https://github.com/brunogoomes/fipexcel/blob/main/main.py): `main.py`
- [Batch export worker](https://github.com/brunogoomes/fipexcel/blob/main/main.py): `main.py`
- [Progress reporting](https://github.com/brunogoomes/fipexcel/blob/main/main.py): `main.py`
- [FIPE Excel output](https://github.com/brunogoomes/fipexcel/blob/main/main.py): `main.py`

### Other components

- **User**

## Connections

- User → Main window: uses (evidence: `README.md`)
- Main window → GUI layout: sets up (evidence: `main.py`)
- Main window → Vehicle catalog lookup: handles selection (evidence: `main.py`)
- Vehicle catalog lookup → Parallelum FIPE API: requests catalog (evidence: `main.py`)
- Main window → Vehicle detail lookup: requests details (evidence: `main.py`)
- Vehicle detail lookup → Parallelum FIPE API: queries vehicle (evidence: `main.py`)
- Main window → FIPE code lookup: handles lookup (evidence: `main.py`)
- FIPE code lookup → Parallelum FIPE API: queries code (evidence: `main.py`)
- Main window → Add vehicle code: adds entry (evidence: `main.py`)
- Add vehicle code → Parallelum FIPE API: checks code years (evidence: `main.py`)
- Add vehicle code → Code workbook: appends entry (evidence: `main.py`)
- Main window → Batch export worker: starts worker (evidence: `main.py`)
- Batch export worker → Code workbook: reads entries (evidence: `main.py`)
- Batch export worker → Parallelum FIPE API: fetches values (evidence: `main.py`)
- Batch export worker → Progress reporting: emits updates (evidence: `main.py`)
- Progress reporting → Main window: updates bar (evidence: `main.py`)
- Batch export worker → FIPE Excel output: writes workbook (evidence: `main.py`)
