RedmineKit

Redmine Dashboards

Dashboards
5.0 (0)·New instalações

Painéis construídos a partir das consultas guardadas que já tem — uma grelha de arrastar e largar com mosaicos de indicadores, tabelas e quinze tipos de gráfico, agregados em SQL e limitados àquilo que quem está a ver tem permissão para ver.

$199 / um servidor

Vários servidores: $399

Reembolso em 5 dias úteis12 meses de atualizaçõesCódigo-fonte incluído
Um painel do Redmine Charts dentro do Redmine 6: um mosaico de indicador com 10 000 tarefas, um anel por projecto, barras de tarefas por prioridade, um anel de estados e um gráfico de linhas de tarefas criadas por mês.
Um painel em directo Mosaicos de indicadores, anéis, gráficos de barras e de linhas num só painel — cada número agregado em SQL a partir dos dados do próprio Redmine, filtrados pelas permissões.
Tipos de widget
23
Variantes de gráfico
15
Redmine
4 · 5 · 6 · 7
Bases de dados
MySQL, MariaDB, PostgreSQL
Alterações ao núcleo
Nenhuma

Construção por arrastar e largar

Uma grelha redimensionável e reordenável que se guarda sozinha enquanto trabalha. Disponha indicadores, gráficos e tabelas até o painel contar aquilo que precisa, sem ficheiro de layout e sem recarregar a página.

Quinze tipos de gráfico

Barras, barras horizontais, barras empilhadas, linha, multilinha, área, circular, anel, radar, polar, manómetro, funil, mapa de calor, treemap e anel de progresso — desenhados com Apache ECharts, em claro e em escuro.

As suas consultas guardadas, em imagem

Aponte um widget a uma consulta guardada e ele herda esse filtro, incluindo campos personalizados, observadores e subprojectos. Ou transforme a consulta num painel inteiro com um clique.

Agregado em SQL

GROUP BY, COUNT, SUM e AVG correm na base de dados, por isso cem mil tarefas são contadas e não instanciadas. Os resultados ficam em cache por utilizador, widget e filtros activos.

Ajustado a quem está a ver

Cada leitura parte de Issue.visible(user), TimeEntry.visible(user) e Query.visible(user), pelo que nenhum gráfico consegue somar um projecto de que quem o lê não é membro.

Filtros, actualização e detalhe

Uma barra de filtros reenquadra o painel inteiro, um intervalo por painel mantém um ecrã de parede actualizado, e cada barra, fatia e célula leva à lista de tarefas que está por trás.

Veja-o a funcionar dentro do Redmine

Todas as capturas de ecrã aqui vêm de uma instalação normal do Redmine 6 com o plugin colocado em plugins/. Os painéis ficam por baixo do cabeçalho e dos menus do próprio Redmine, porque é aí que correm.

Montar um painel

Modo de edição num painel: cada widget mostra pegas de arrasto e cantos de redimensionamento, e a disposição é guardada automaticamente.
Modo de edição Active o interruptor Editar e cada widget passa a poder ser arrastado e redimensionado. A disposição guarda-se sozinha à medida que avança.
A janela Adicionar widget: tipo de widget, origem de dados, consulta guardada opcional, medida e agregação, escolhidos em listas.
Adicionar um widget Escolha um tipo de widget, uma origem de dados e, se quiser, uma consulta guardada; depois a medida e a agregação. Ninguém escreve SQL.

Widgets

O selector de tipos de widget com quinze variantes ECharts, indicador e tabela, mais Markdown, notas, HTML, iframe, fluxo de actividade e tarefas recentes.
23 tipos de widget Quinze variantes ECharts mais indicador, tabela e seis widgets de conteúdo — Markdown, notas, HTML, iframe, fluxo de actividade e tarefas recentes.
O menu próprio de um widget aberto num painel, com as acções actualizar, configurar e eliminar.
Acções do widget Cada widget carrega por si e tem o seu próprio menu — actualize um gráfico sem recarregar o resto do painel.

Partilhar e alternar

A janela de partilha do painel com visibilidade privada, partilhada e pública, e selectores de perfis, grupos e projectos.
Partilha Mantenha um painel privado, partilhe-o com perfis, grupos ou projectos concretos, ou abra-o a todos os utilizadores autenticados — resolvido através das participações do Redmine.
O selector de painéis na barra de ferramentas com todos os painéis visíveis, e opções para definir um por omissão, exportar como JSON ou criar um novo.
Alternar entre painéis O selector da barra de ferramentas lista todos os painéis que pode ver. Fixe um como painel por omissão, exporte-o como JSON ou comece um novo.

A consulta já é o relatório

Nada aqui lhe pede para descrever os seus dados uma segunda vez. Filtre uma lista de tarefas como sempre fez, guarde-a, e essa consulta guardada passa a ser o âmbito que um widget agrega — exactamente a relação que o Redmine usa para desenhar a lista.

Uma consulta guardada, três caminhos até um painel
PassoO que fazO que obtém
1. Guardar uma consultaFiltrar a lista de tarefas — campos personalizados, observadores, subprojectos — e carregar em GuardarUma consulta com nome, visível para aqueles com quem a partilhou
2. Apontar-lhe um widgetEscolher essa consulta na janela do widgetOrigem de dados e um agrupamento por omissão sensato, deduzidos por si
3. Ou gerar o painel inteiroCarregar em «A partir da consulta»Um painel de mosaicos de indicadores e gráficos ligados a ela, num único pedido

Configurado a partir de listas, não de SQL

Um widget é uma origem, uma dimensão, uma medida e uma agregação. Agrupe tarefas por estado, prioridade, tipo, responsável ou qualquer campo de data repartido em dias, semanas, meses ou anos; conte-as, some as horas estimadas ou faça a média do progresso. Ninguém na equipa escreve SQL para obter um gráfico — e como não há SQL para escrever, também não há consulta capaz de ultrapassar as permissões de quem a está a ler.

A janela A partir da consulta: escolha uma consulta guardada do Redmine para gerar um painel de indicadores e gráficos ligados aos seus filtros.
A partir de uma consulta guardada Escolha qualquer consulta guardada e receba um painel pronto de indicadores e gráficos — estado, prioridade, responsável, tendência e uma tabela — ligado aos seus filtros.

Cada widget configurado num único formulário

Todos os widgets, seja um indicador, uma barra ou um anel, configuram-se no mesmo formulário curto: um título e um tipo, uma origem de dados, uma consulta guardada opcional para os filtros, uma medida e um agrupamento com Top-N. Mude o tipo e o formulário adapta-se.

Formulário Configurar widget para um indicador: título Total de tarefas, origem de dados Tarefas, consulta guardada, medida Número de tarefas, função count.
Mosaico de indicador Um número: uma medida e uma agregação sobre uma consulta guardada.
Formulário Configurar widget para um gráfico de barras: Tarefas por prioridade, agrupadas por Prioridade, Top N 20.
Gráfico de barras Agrupe por qualquer dimensão, como a prioridade, e corte a cauda longa com Top-N.
Formulário Configurar widget para um gráfico de anel: Tarefas por estado, agrupadas por Estado.
Gráfico de anel Os mesmos campos com outro tipo. Mudar de gráfico mantém as definições de dados.
Definições do plugin Redmine Charts: cache activa, expiração da cache 300 segundos, tema por omissão Claro, intervalo de actualização automática 0.
Definições do plugin Cache, TTL da cache, tema por omissão e actualização automática, no ecrã de configuração do próprio Redmine.

Uma única página de definições para administradores

Em Administração › Plugins › Redmine Charts define a cache de resultados por utilizador, o TTL da cache (5–86400 segundos, por omissão 300), o tema claro ou escuro por omissão e um intervalo de actualização automática por omissão, em que 0 a desliga. A página é o próprio ecrã de configuração de plugins do Redmine.

23 tipos de widget, e espaço para os seus

Cada tipo são metadados num registo, por isso a interface de configuração constrói-se a partir da declaração do próprio widget e não de um formulário escrito à mão para cada gráfico.

O catálogo que vem na caixa
FamíliaTiposConfigurado com
GráficosBarras, barras horizontais, barras empilhadas, linha, multilinha, área, circular, anel, radar, polar, manómetro, funil, mapa de calor, treemap, anel de progressoOrigem, dimensão, medida, agregação
Indicador / númeroUm único valor agregado, com filtro própriocount · sum · avg · min · max
TabelaUma grelha paginada sobre os mesmos dados filtrados pelas permissõesSelector de colunas e filtros
ConteúdoMarkdown, notas, HTML, iframe, fluxo de actividade, tarefas recentesTexto livre, ou um dos fluxos do próprio Redmine

Desenhado com Apache ECharts

Quinze variantes, pensadas para claro e escuro, redesenhadas ao redimensionar e ainda legíveis num ecrã de parede. O bundle vem já compilado dentro do pacote, por isso instalar não exige Node nem passo de compilação.

Cada segmento desce ao detalhe

Carregar numa barra, numa fatia ou numa célula do mapa de calor abre a lista de tarefas do Redmine filtrada exactamente por essas. Os números continuam auditáveis, porque pode sempre aterrar nas linhas que estão por trás.

Filtros globais e actualização automática

Uma barra de filtros reenquadra todos os widgets do painel de uma só vez, e um intervalo de actualização por painel mantém actual o ecrã do corredor. Zero desliga a actualização.

Modelos e plantas

Guarde um painel como modelo reutilizável, duplique-o por equipa, ou exporte-o como planta JSON e importe-o noutra instância — de pré-produção para produção sem o reconstruir à mão.

Um plugin, um painel para cada equipa

Uma responsável de entregas, um serviço de apoio e um único programador montaram cada um destes em minutos, a partir de consultas guardadas que já tinham.

Painel em toda a extensão: indicador, anéis, barras por prioridade, tendência mensal, carga de trabalho por responsável e uma tabela de tarefas paginada.
Visão da carteira Indicador, anéis, tendência, carga por responsável e uma tabela de tarefas paginada.
Painel Tarefas atribuídas a mim com um indicador, um gráfico de área e um anel de estados.
Tarefas atribuídas a mim Um painel pessoal com um gráfico de área e um anel de estados.
Painel Tarefas criadas com um indicador, um anel por tipo e barras por prioridade.
Tarefas criadas Distribuição por tipo, repartição por prioridade e estado num relance.
Painel de suporte: mosaicos de indicador com o total de tarefas e o tempo gasto, um anel de estados, barras por prioridade, subtipo e módulo, e um gráfico de linhas de tarefas criadas por mês.
Visão do suporte Tarefas, tempo gasto, prioridade, subtipo e carga por módulo num período de suporte.
Painel de suporte de um ano inteiro: mosaicos de indicador com o total de tarefas e o tempo gasto, um anel de estados, barras por prioridade, módulo e subtipo, e um gráfico de linhas de tarefas criadas por mês.
O ano de suporte em números Volume de tarefas, tempo gasto e repartição por prioridade e módulo, com a evolução mês a mês.

Duas origens incluídas, e a sua ao lado

Tarefas e tempo dedicado chegam com as suas dimensões e medidas já declaradas, ambas atrás dos âmbitos de visibilidade do Redmine. Uma origem acrescentada por outro plugin recebe tratamento idêntico.

OrigemDimensõesMedidas
TarefasEstado, prioridade, tipo, projecto, responsável, autor, categoria, versão, criação, actualização, data limiteNúmero de tarefas, horas estimadas, progresso
Tempo dedicadoProjecto, utilizador, actividade, dataHoras, número de registos
A suaAquilo que registarAquilo que registar

Estender é registar, não remendar

Uma origem de dados é uma classe com um nome, as suas dimensões, as suas medidas e um base_scope filtrado pelas permissões; um tipo de widget é um hash. Registe qualquer um deles a partir do init.rb do seu próprio plugin com RedmineCharts.register_data_source ou register_widget_type e aparece de imediato na interface de configuração, herdando filtragem, cache e navegação ao detalhe. Para isso não se altera nada neste plugin.

Ninguém agrega aquilo que não pode ler

Um painel é uma forma rápida de deixar escapar um número, por isso cada leitura começa no âmbito de quem está a ver, em vez de terminar com uma verificação contra ele.

Primeiro a visibilidade, depois o agrupamento

Issue.visible(user), TimeEntry.visible(user) e Query.visible(user) restringem a relação antes de uma única linha ser contada. Um total vindo de um projecto de que não é membro não pode aparecer em widget nenhum, porque essas linhas nunca estiveram no conjunto.

Quatro permissões granulares

Ver painéis, criá-los, gerir todos e gerir modelos — cada uma atribuível por perfil. E tudo fica desligado até alguém activar o módulo Painéis para esse projecto.

Partilha através das participações

Conceda um painel a utilizadores, grupos, perfis ou projectos inteiros. Cada pedido volta a resolver viewable_by? e editable_by? pelas participações do próprio Redmine, e não por uma lista de acessos paralela que acaba por divergir.

Nada sai do servidor

O frontend só fala com a API JSON deste plugin, no seu próprio Redmine, usando a sessão e o token CSRF que já existem. Nenhum serviço externo, nenhuma chamada de licença, nenhuma telemetria.

Feito para aguentar uma instância grande

Contar cem mil tarefas não devia obrigar a carregar cem mil objectos. Aqui não obriga.

O que acontece quando um painel é aberto
AssuntoComo é resolvido
AgregaçãoGROUP BY, COUNT, SUM e AVG correm em SQL — as linhas nunca são instanciadas só para serem contadas
Dimensões muito largasO dobrar Top-N mantém a resposta pequena quando uma dimensão tem milhares de valores
Visitas repetidasResultados em cache por utilizador, data de alteração do widget e filtros activos através da Rails.cache; o TTL é uma definição e o Redis funciona tal como está
Um widget lentoOs widgets carregam de forma independente, por isso uma consulta pesada nunca prende o painel inteiro
Bundle de JS em faltaO Rails desenha no servidor os dados de cada widget como recurso alternativo, por isso a página degrada-se em vez de ficar em branco

Portável por desenho, não por acaso

O suporte a várias versões e bases de dados foi pensado de raiz — migrações, armazenamento JSON e agrupamento por datas foram todos escritos para resistir às diferenças.

AspectoSuportadoComo
Redmine4.x, 5.x, 6.x, 7.xDeclara requires_redmine version_or_higher 4.0.0, sem substituições do núcleo que fiquem desactualizadas
Rails5.2 → 8.0As migrações apontam à base 5.2, que todas as versões até à 8.0 compreendem
Ruby2.5+Coincide com o requisito mínimo do Redmine 4
Bases de dadosMySQL, MariaDB, PostgreSQLO JSON vive em simples colunas text — DDL idêntico em todo o lado — com um serializador que escolhe a forma certa para cada versão do Rails
Agrupamento por datasDia, semana, mês, anoAgrupa com um CAST(col AS DATE) portável e depois dobra em intervalos no Ruby — sem SQL específico de um fabricante
Voltar a correr migraçõesSeguroEscritas de forma defensiva, por isso uma actualização interrompida pode ser repetida

Programável desde o primeiro dia

Cada endpoint vive em /redmine_charts/api, devolve JSON e aplica exactamente as permissões da interface — um painel pode assim ser criado a partir da CI ou gerado um por equipa.

MétodoCaminhoO que faz
GET/dashboardsTodos os painéis visíveis para quem chama
POST/dashboardsCriar um
GET/dashboards/:idObter um painel com os seus widgets
PATCH/dashboards/:idAlterar nome, disposição ou definições
POST/dashboards/:id/duplicateCloná-lo, widgets incluídos
GET/dashboards/:id/exportExportar uma planta JSON
POST/dashboards/importCriar um painel a partir de uma planta
POST/dashboards/:id/widgetsAcrescentar um widget
GET/widgets/:id/dataDados do widget agregados e filtrados pelas permissões
GET/meta/data_sourcesOrigens, dimensões, medidas e as consultas guardadas que pode usar

O que vem hoje, e o que vem a seguir

Os itens do roteiro são aditivos por desenho — novas origens de dados, tipos de widget e serviços de exportação — por isso nenhum lhe irá pedir para migrar o que quer que seja. Aparecem como roteiro e não como funcionalidades, para que compre pelo que está hoje na caixa.

FuncionalidadeEstado
Painéis: criar, duplicar, definir por omissão, exportar e importarDisponível
Grelha redimensionável de arrastar e largar, com gravação automáticaDisponível
Indicador, tabela e o conjunto completo de gráficos EChartsDisponível
Configuração visual de widgets sem SQLDisponível
Reutilização de consultas guardadas e geração de painéis com um cliqueDisponível
Filtros globais que actualizam o painel inteiroDisponível
Navegação ao detalhe do gráfico para a lista de tarefasDisponível
Agregação SQL e cache por utilizador, filtradas pelas permissõesDisponível
Partilha, modelos, temas claro e escuroDisponível
Várias versões, várias bases de dados, recurso alternativo no servidorDisponível
Exportação para PDF, PNG e ExcelPlaneado
Tarefas em segundo plano para relatórios muito pesadosPlaneado
Actualização em directo por WebSocketPlaneado
Instantâneos agendados e enviados por e-mailPlaneado
Modo quiosque / ecrã de paredePlaneado
Criador de relatórios com IA em linguagem naturalPlaneado
Widgets de calendário, burndown e resumo de GanttPlaneado

Preços

Um servidor

$199

Uma instância do Redmine · utilizadores ilimitados · 12 meses de atualizações.

Unlimited users12 months of updatesPriority email support
Comprar licença

Vários servidores

$399

Servidores Redmine ilimitados · utilizadores ilimitados · 12 meses de atualizações.

Unlimited users12 months of updatesPriority email support
Comprar licença
Comprar