# willpine1992/dasboard-covenios-uea architecture

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

- Interactive diagram: https://gitdiagram.com/willpine1992/dasboard-covenios-uea
- Repository: https://github.com/willpine1992/dasboard-covenios-uea

## Overview

Este repositório publica um painel estático de acordos internacionais da UEA e inclui um ETL que transforma registros do banco SQLite em JSON para o site. O fluxo principal vai da exportação e geocodificação dos acordos até o carregamento dos dados e a apresentação de indicadores, gráficos e mapa. O README documenta os módulos principais; como os arquivos JavaScript do painel não foram amostrados, as ligações entre eles refletem essa documentação, não chamadas verificadas no código.

Main entry points: [`docs/js/main.js`](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/js/main.js) (Orquestração), [`etl/export_dashboard_data.py`](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/etl/export_dashboard_data.py) (Exportação de dados), [`etl/geocode.py`](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/etl/geocode.py) (Geocodificação), [`docs/fluxo.html`](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/fluxo.html) (Página de fluxo)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_etl["Preparação de dados"]
  node_exporter["Exportação de dados"]
  node_geocoder["Geocodificação<br/>[geocode.py]"]
  node_geo_cache[("Cache de geocodificação")]
  node_dashboard_data["Dados do painel<br/>[dashboard.json]"]
end

subgraph group_site["Painel estático"]
  node_dashboard_page["Página do painel<br/>[index.html]"]
  node_main["Orquestração<br/>[main.js]"]
  node_common["Tema e agregações<br/>[common.js]"]
  node_report_page["Página de fluxo<br/>[fluxo.html]"]
end

subgraph group_views["Visualizações"]
  node_charts["Gráficos<br/>[charts.js]"]
  node_flowmap["Globo de fluxo<br/>[flowmap.js]"]
  node_fluxo["Lógica de fluxo<br/>[fluxo.js]"]
  node_report["Relatório<br/>[report.js]"]
  node_map_data["Dados geográficos"]
end

node_analyst(("Visitante"))
node_source_db[("Banco de acordos")]
node_nominatim["Nominatim"]

node_analyst -->|"abre painel"| node_dashboard_page
node_source_db -->|"fornece acordos"| node_exporter
node_exporter -->|"usa"| node_geocoder
node_geocoder -->|"consulta"| node_nominatim
node_geocoder -->|"lê e grava"| node_geo_cache
node_exporter -->|"grava JSON"| node_dashboard_data
node_dashboard_page -->|"inicia"| node_main
node_main -->|"carrega dados"| node_dashboard_data
node_main -->|"usa helpers"| node_common
node_main -->|"orquestra"| node_charts
node_main -->|"orquestra"| node_flowmap
node_analyst -->|"abre página"| node_report_page
node_report_page -->|"inicia"| node_fluxo
node_report_page -->|"carrega"| node_report
node_fluxo -->|"carrega dados"| node_dashboard_data
node_flowmap -->|"usa geografia"| node_map_data

click node_exporter "https://github.com/willpine1992/dasboard-covenios-uea/blob/main/etl/export_dashboard_data.py"
click node_geocoder "https://github.com/willpine1992/dasboard-covenios-uea/blob/main/etl/geocode.py"
click node_dashboard_data "https://github.com/willpine1992/dasboard-covenios-uea/blob/main/data/dashboard.json"
click node_dashboard_page "https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/index.html"
click node_main "https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/js/main.js"
click node_common "https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/js/common.js"
click node_charts "https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/js/charts.js"
click node_flowmap "https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/js/flowmap.js"
click node_report_page "https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/fluxo.html"
click node_fluxo "https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/js/fluxo.js"
click node_report "https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/js/report.js"
click node_map_data "https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/lib/countries-110m.json"

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_exporter,node_geocoder,node_geo_cache,node_dashboard_data toneBlue
class node_dashboard_page,node_main,node_common,node_report_page,node_source_db toneAmber
class node_charts,node_flowmap,node_fluxo,node_report,node_map_data toneMint
class node_analyst,node_nominatim toneIndigo
```

## Components

### Preparação de dados

- [Exportação de dados](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/etl/export_dashboard_data.py): `etl/export_dashboard_data.py`
- [Geocodificação](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/etl/geocode.py): `etl/geocode.py`
- **Cache de geocodificação**
- [Dados do painel](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/data/dashboard.json): `data/dashboard.json`

### Painel estático

- [Página do painel](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/index.html): `docs/index.html`
- [Orquestração](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/js/main.js): `docs/js/main.js`
- [Tema e agregações](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/js/common.js): `docs/js/common.js`
- [Página de fluxo](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/fluxo.html): `docs/fluxo.html`

### Visualizações

- [Gráficos](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/js/charts.js): `docs/js/charts.js`
- [Globo de fluxo](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/js/flowmap.js): `docs/js/flowmap.js`
- [Lógica de fluxo](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/js/fluxo.js): `docs/js/fluxo.js`
- [Relatório](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/js/report.js): `docs/js/report.js`
- [Dados geográficos](https://github.com/willpine1992/dasboard-covenios-uea/blob/main/docs/lib/countries-110m.json): `docs/lib/countries-110m.json`

### Other components

- **Visitante**
- **Banco de acordos**
- **Nominatim**

## Connections

- Visitante → Página do painel: abre painel
- Banco de acordos → Exportação de dados: fornece acordos
- Exportação de dados → Geocodificação: usa
- Geocodificação → Nominatim: consulta
- Geocodificação → Cache de geocodificação: lê e grava
- Exportação de dados → Dados do painel: grava JSON
- Página do painel → Orquestração: inicia
- Orquestração → Dados do painel: carrega dados
- Orquestração → Tema e agregações: usa helpers
- Orquestração → Gráficos: orquestra
- Orquestração → Globo de fluxo: orquestra
- Visitante → Página de fluxo: abre página
- Página de fluxo → Lógica de fluxo: inicia
- Página de fluxo → Relatório: carrega
- Lógica de fluxo → Dados do painel: carrega dados
- Globo de fluxo → Dados geográficos: usa geografia
