Voltar aos projetos
Tela inicial do projeto Prisma BI

Dados & BI · Multi-tenant

Prisma BI

Plataforma de BI multi-tenant para varejo: 9 painéis, permissão por indicador e um motor de ETL configurável pela própria interface, que carrega os dados do ERP em cubos agendados.

Stack

Django 6PostgreSQLdjango-tenantsCeleryRedisEChartsJavaScript puroWhiteNoiseDockerNginxGitHub Actions

Telas

Clique em uma tela para ampliar e ler o conteúdo.

Home lista só os painéis que o usuário tem permissão de ver
Faturamento: meta distribuída pelo calendário comercial de cada loja
Vendedores: remuneração estimada por faixa de comissão
Gestores: visão multi-loja para a diretoria, com ranking e crescimento
Auditoria: conformidade fiscal e operacional em quatro famílias de indicadores
Compras: análise por produto e fornecedor, com curva ABC
Financeiro: caixa, prazo médio e inadimplência
Crédito e Cobrança: inadimplência por carteira e evolução
ADM: notas de uso e consumo, com valor e quantidade por período
Promotores de Marca: desempenho por marca e por promotor
Configurações: cadastros de apoio geridos dentro do próprio BI
Gestão: catálogo de painéis e indicadores, com ativação item a item
Motor de ETL: cubos, agendamento e cargas configurados pela interface
Conexões com o banco do ERP cadastradas na própria interface
Usuários e escopo: vínculo de loja, setor e vendedor conforme o papel
Permissão por indicador e por tipo de usuário, não só por painel
Backup do banco por tela autenticada, restrito ao SuperAdmin

O problema

  • Cada área respondia "quanto vendemos" com a própria planilha, então existiam três versões do mesmo faturamento e nenhuma servia para decidir.
  • Quem podia ver o quê era combinado de boca: relatório de margem e de inadimplência circulando para quem não devia ver.
  • Mudar a regra de um indicador ou incluir uma nova carga exigia mexer no código e subir versão — o que trava a operação em quem sabe programar.

O que eu construí

  • Nove painéis (faturamento, vendedores, gestores, auditoria, compras, financeiro, crédito e cobrança, ADM e promotores de marca) sobre um data mart único: uma fonte, um número.
  • Permissão por indicador, não só por painel: 12 papéis, e o escopo de cada um (loja, setor, vendedor) já entra travado nos filtros — vendedor vê só o próprio dado.
  • Motor de ETL configurável pela interface: cubos, conexões com o ERP e agendamento mudam sem deploy.
  • Meta distribuída dia a dia pelo calendário comercial de cada loja (sábado vale 0,5, feriado não conta), em vez de pró-rata linear que engana no começo do mês.
  • Multi-tenant com schema por cliente (django-tenants): o dado de cada empresa fica isolado no banco, não filtrado por WHERE.
  • Backup do banco por tela autenticada, com download restrito ao SuperAdmin.