Skip to main content

Gere dashboards visuais como imagens usando HTML/CSS e Playwright.

Project description

Dashgen

📊 Gere dashboards visuais como imagens (PNG) diretamente do Python com HTML, Tailwind CSS e Chart.js.


✨ O que é?

dashgen é um micro-framework que permite criar dashboards dinâmicos e exportá-los como imagens de alta qualidade.

Ideal para gerar relatórios diários, KPIs, resumos visuais e compartilhar automaticamente via e-mail, WhatsApp, sistemas internos etc.


🛠 Instalação

pip install dashgen
playwright install

🚀 Exemplo Completo

from dashgen import Dashboard
from dashgen.core.layout import Row, Column

# Criar o dashboard com altura automática e tema
db = Dashboard(
    title="Relatório de Vendas",
    logo_path="logo.png",  # Opcional
    size=(1080, None),     # Altura automática
    auto_size=True,
    theme={
        "primary": "#005f73",
        "accent": "#94d2bd",
        "bg": "#fefae0",
        "text": "#001219"
    }
)

# Linha com dois cards lado a lado
db.add(Row(
    Column(6).add_card("Receita Acumulada", 8200000, 10000000),
    Column(6).add_card("Unidades Vendidas", 320, 400)
))

# Linha com tabela e gráfico de barras
dados = [
    {"Nome": "Projeto A", "Meta": "R$ 2M", "Realizado": "R$ 1.6M", "Variação": "-20%"},
    {"Nome": "Projeto B", "Meta": "R$ 3M", "Realizado": "R$ 3.1M", "Variação": "+3%"},
]
db.add(Row(
    Column(6).add_table("Receita por Empreendimento", dados, ["Nome", "Meta", "Realizado", "Variação"]),
    Column(6).add_chart("bar", "Vendas Mensais", [
        {"label": "Jan", "value": 120},
        {"label": "Fev", "value": 135},
        {"label": "Mar", "value": 160},
    ])
))

# Linha com gráfico de linha
db.add(Row(
    Column(12).add_chart("line", "Receita Total (R$)", [
        {"label": "Jan", "value": 1200000},
        {"label": "Fev", "value": 1450000},
        {"label": "Mar", "value": 1600000},
    ])
))

# Exportar como imagem
db.generate("output_dashboard.png")

🧱 Componentes Disponíveis

📐 Layout

  • Row(...): agrupa colunas lado a lado
  • Column(width=...): define largura (1 a 12 colunas)

📦 Card (KPI)

Column(6).add_card("Título", valor, meta)

Barra de progresso com percentual atingido.

📊 Tabela

Column(6).add_table("Título", data, headers)
  • data: lista de dicionários
  • headers: nomes das colunas a exibir

📈 Gráfico

Column(6).add_chart("bar", "Título", data)
Column(6).add_chart("line", "Título", data)
  • data: lista com label e value
  • Tipos: "bar", "line"

🎨 Tema Personalizado

Você pode customizar as cores do dashboard:

theme = {
    "primary": "#005f73",  # Barras e títulos
    "accent": "#94d2bd",   # Detalhes
    "bg": "#fefae0",       # Fundo da imagem
    "text": "#001219"      # Cor do texto
}

🧠 Funcionalidades Especiais

  • auto_size=True: ajusta automaticamente a altura da imagem com base no conteúdo
  • Suporte a Tailwind via CDN
  • Charts renderizados com Chart.js
  • Layout flexível com Row e Column

📚 Documentação Técnica

📘 Dashboard

Dashboard(title, logo_path=None, size=(1080, 1080), theme=None, auto_size=False)
Parâmetro Tipo Descrição
title str Título do dashboard
logo_path str (opcional) Caminho para a logo
size (int, int) Tamanho da imagem (largura, altura)
theme dict Cores personalizadas
auto_size bool Ativa ajuste automático de altura

Dashboard.add(Row(...))

Adiciona um conjunto de colunas à imagem.


Dashboard.generate(path)

Gera e salva a imagem final em path.


📘 Row(...)

Agrupa Columns horizontalmente (até 12 colunas somadas).

📘 Column(width=12)

Define a largura da coluna (de 1 a 12). Dentro dela você pode usar:

  • .add_card(...)
  • .add_table(...)
  • .add_chart(...)

✅ Requisitos

  • Python 3.7+
  • playwright
  • jinja2

Instale tudo com:

pip install dashgen
playwright install

🖼 Exporte dashboards com visual moderno e profissional em segundos.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dashgen-0.1.4.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dashgen-0.1.4-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file dashgen-0.1.4.tar.gz.

File metadata

  • Download URL: dashgen-0.1.4.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for dashgen-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ceb04f40a9df3b2b0d41170617b4d5a76348f574d9be861c20315e4bc2f9297e
MD5 1d09226d974ff17bd5ab9c6c229782d4
BLAKE2b-256 e9135065271c680dab87c23c5bb99e65f77f769f26a5c0b3f06a4572acd3b082

See more details on using hashes here.

File details

Details for the file dashgen-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: dashgen-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for dashgen-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f197e6305ba121bb19d000c59f93d59e0c01611e8e32e264ee6f3c6603e5cbd9
MD5 82c77f26959e464d998aeb6332788d9b
BLAKE2b-256 5474df771a9133c641b3f40f2323462aa1f962b5157d079138ef6284fc7ab666

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page