Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sales Analytics Dashboard

Última atualização: 23 de abril de 2026

Dashboard de inteligência de dados e analytics comercial open-source, com autenticação por perfil, dashboards de performance, grupos de visibilidade dinâmicos, sincronizações com sistemas externos e telas públicas para TV corporativa.

Visão geral

O projeto concentra frontend, backend e operação em uma única base Next.js (App Router). Atende três cenários:

  • Gestão executiva: visão completa no painel admin (vendas, ligações, metas, estoque, TOTVS, qualidade).
  • Operação de vendas: visão individual no painel da vendedora.
  • Exibição corporativa: ranking e wallboard para TV (3 slides automáticos).

Dados consolidados no Supabase e enriquecidos por rotinas de sincronização com sistemas externos.

Stack

Tecnologia Versão Uso
Next.js 16.2.2 App Router (frontend + API routes)
React 19.2.0 UI
TypeScript 5.7.3 Tipagem
Tailwind CSS 3.4.17 Estilos
Recharts 2.15.0 Gráficos
Framer Motion 12.35.2 Animações
Supabase 2.49.4 Auth + Postgres + RLS
pg 8.20.0 Conexão direta TOTVS
Docker Chainguard Node Produção
Traefik Proxy reverso + HTTPS

Estrutura do projeto

app/           → Páginas e rotas API (App Router)
components/    → Componentes visuais e dashboard principal
hooks/         → Estado de filtros, dados e UI
lib/           → Integrações, segurança e funções puras
scripts/       → Sincronização e manutenção (.mjs)
supabase/      → Migrações SQL (43 arquivos)
docs/          → Documentação técnica completa
config/        → Configuração de vendedoras

Subir localmente

npm install
npm run dev

Aplicação em: http://localhost:3000

Build e execução de produção

npm run build
npm run start

Docker

Build (obrigatório usar --build-arg)

# PowerShell — lê Supabase URL/key do .env
$envContent = Get-Content ".env" -Raw
$supabaseUrl = ([regex]::Match($envContent,'(?m)^NEXT_PUBLIC_SUPABASE_URL=(.+)$')).Groups[1].Value.Trim()
$anonKey = ([regex]::Match($envContent,'(?m)^NEXT_PUBLIC_SUPABASE_ANON_KEY=(.+)$')).Groups[1].Value.Trim()
docker build --build-arg "NEXT_PUBLIC_SUPABASE_URL=$supabaseUrl" --build-arg "NEXT_PUBLIC_SUPABASE_ANON_KEY=$anonKey" -t sales-analytics-dashboard:latest .

Ambiente local

docker compose up -d
docker compose logs -f analytics-dashboard

Push e deploy no servidor

# Push
docker tag sales-analytics-dashboard:latest seuusuario/sales-analytics-dashboard:latest
docker push seuusuario/sales-analytics-dashboard:latest

# Servidor (com Traefik + HTTPS)
docker compose -f docker-compose.traefik.yml pull
docker compose -f docker-compose.traefik.yml up -d

Scripts de sincronização

Comando Descrição
npm run sync:totvs-faturados:apply Sync TOTVS faturados
npm run sync:velis-billing:apply Sync Velis billing
npm run sync:estoque:apply Sync estoque TOTVS
npm run sync:bitrix-users Sync usuários Bitrix

Todos os scripts geram logs em logs/*.jsonl e usam lock files para evitar concorrência.

Fora do Git

.next/
node_modules/
logs/
.env*  (exceto .env.example)
*.tsbuildinfo
traefik/letsencrypt/acme.json
.sync-progress.json
tmp_*

Documentação

Ponto de entrada: docs/00-INDICE.md

Guias úteis:

A trilha de leitura dos documentos é encadeada com "Próxima leitura sugerida" ao final de cada arquivo.

Segurança

  • Nunca versionar .env.
  • Variáveis de ambiente centralizadas via lib/env.ts (readEnv()).
  • Webhook Bitrix protegido com secret + rate limit + safeEqual().
  • Avatar proxy com proteção SSRF (allowlist de hosts).
  • Cabeçalhos de segurança (CSP, HSTS, Referrer-Policy) no next.config.mjs.
  • Se qualquer segredo foi exposto, rotacionar imediatamente.
  • Ver análise completa: docs/13-SEGURANCA-ATUAL.md.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages