Funcionalidades Módulos Documentação Roadmap Contato
v1.4.9.0  ·  Estável
DashTask

DashTask

Gestão técnica sem fronteiras.

Kanban, geolocalização de clientes, controle de estoque, SLA, relatórios e muito mais — tudo em uma única plataforma dark, rápida e segura.

Ver Documentação Explorar Módulos
0+ Módulos
0+ Endpoints API
0% TypeScript
— ext. Dependências UI

Veja o sistema em ação

Interfaces construídas para velocidade e clareza — sem distrações.

dashtask.suaempresa.com.br
Dashboard DashTask
Visão geral de indicadores, tarefas urgentes e produtividade da equipe.
Funcionalidades

Tudo que você precisa.
Nada que você não precisa.

Cada módulo foi construído para resolver um problema real de operações técnicas de campo.

Kanban de Tarefas

Arraste e solte tarefas entre colunas. Prioridades, SLA, responsáveis e anexos em um único painel.

Drag & Drop SLA Prioridades

GeoDash — Mapa Geográfico

Visualize todos os clientes no mapa. Filtre por tarefas abertas, equipamentos instalados ou status geográfico.

Leaflet Clusters Geocodificação

Gestão de Clientes

Cadastro completo com endereço, contato, coordenadas manuais e mapa interativo diretamente no formulário.

Nominatim CSV Import Mapa

Controle de Equipamentos

Rede de equipamentos com relações parent-child, histórico de instalação, localização por cliente e rede visual.

Hierarquia Network View

Estoque e Peças

Gerencie peças por tarefa, estoque mínimo e alertas de reposição. Cada tarefa tem sua própria aba de peças consumidas.

Por Tarefa Alertas

Relatórios e Exportação

Relatórios analíticos e sintéticos com filtros de data, técnico e cliente. Exportação em PDF e CSV.

PDF CSV Gráficos

SLA e Escalação

Regras de SLA por categoria e prioridade. Escalação automática com notificações quando o prazo é ultrapassado.

Auto Escalação Dashboard

Controle de Acesso

Permissões granulares por módulo. Roles: Admin, Técnico, Dashboard. Auditoria completa de todas as ações.

Permissões Audit Log

Calendário de Tarefas

Visualize tarefas em formato calendário mensal. Identifique acúmulos e distribua melhor o trabalho da equipe.

Mensal Por Técnico

Como o sistema funciona

Explore cada área do DashTask em detalhe.

Gestão de Tarefas

O coração do DashTask. Tarefas são criadas com título, descrição, cliente, técnico responsável, categoria, prioridade e data prevista. O fluxo principal ocorre no Kanban com colunas configuráveis.

  • 4 status: Aberto → Em Andamento → Concluído → Cancelado
  • 4 prioridades com indicação visual por cor
  • Checklist de subtarefas com progresso
  • Anexos de imagens e documentos
  • Histórico de peças consumidas por tarefa
  • Comentários internos com timestamp
  • SLA calculado automaticamente por categoria
// Estrutura de uma tarefa interface Task { id: number title: string status: 'open' | 'in_progress' | 'done' | 'canceled' priority: 'low' | 'normal' | 'high' | 'urgent' client_id: number technician: string due_date: string | null sla_breached: boolean checklist: CheckItem[] parts: Part[] attachments: Attachment[] }

Cadastro de Clientes

Cada cliente possui dados completos de endereço com geocodificação automática via CEP e Nominatim. A localização pode ser refinada manualmente com mapa interativo.

  • Preenchimento automático de endereço por CEP
  • Geocodificação via Nominatim (rua + número + cidade)
  • Mini mapa Leaflet com pin arrastável no formulário
  • Importação em lote via CSV ou JSON (15 campos)
  • Status ativo/inativo, código interno, contato
  • Badge de origem: Manual / Automático / Pendente
// Colunas do CSV de importação NOME;CODIGO;CONTATO;TELEFONE;EMAIL CLIENTE_ATIVO;CEP;ENDERECO;NUMERO COMPLEMENTO;BAIRRO;CIDADE;UF LATITUDE;LONGITUDE // Geocode status 'pending' → aguardando geocodificação 'ok' → geocodificado via API 'manual' → coordenadas inseridas manualmente 'failed' → endereço não encontrado

GeoDash — Inteligência Geográfica

Visualização em mapa de todos os clientes geocodificados. Agrupa marcadores quando afastado e expande individualmente conforme o zoom aumenta.

  • Clusters inteligentes: zoom < 9 agrupado, zoom ≥ 9 individual
  • Modo Tarefas: destaca clientes com tarefas abertas
  • Modo Equipamentos: destaca clientes com equipamentos
  • Popup com resumo: tarefas, equipamentos, status
  • Mapa por estado com choropleth de distribuição
  • Estatísticas de cobertura geográfica
// Filtro de marcadores por modo if (mapMode === "tasks" && !((pt.open_tasks ?? 0) > 0)) continue if (mapMode === "equipment" && !((pt.equipment_count ?? 0) > 0)) continue // Configuração de clusters L.markerClusterGroup({ maxClusterRadius: 80, disableClusteringAtZoom: 9, })

Relatórios e Análises

Dois modos de relatório: Analítico (detalhado por tarefa) e Sintético (agrupado por técnico/cliente). Filtros de período, técnico e cliente com exportação direta.

  • Relatório analítico: listagem completa com status, tempo e SLA
  • Relatório sintético: totais por técnico com métricas
  • Exportação PDF com logo e data de emissão
  • Exportação CSV para análise em planilhas
  • Gráficos de distribuição de status e prioridade
  • Dashboard SLA com tarefas em risco
// Endpoint de relatório analítico GET /api/reports/analytical ?from=2025-01-01 &to=2025-12-31 &technician_id=5 // opcional &client_id=12 // opcional // Resposta { tasks: Task[], totals: { open: 12, done: 45, sla_breached: 3 } }

Painel de Administração

Controle total da plataforma: usuários, permissões, categorias, configurações de SLA, tokens de API e log de auditoria.

  • Gerenciamento de usuários com roles granulares
  • Configuração de SLA por categoria e prioridade
  • Domínios de equipamentos: modelos, fabricantes, tipos
  • Token CEP configurável via painel
  • Log de auditoria com IP, usuário e dados alterados
  • Checklist administrativo de configuração inicial
  • Modo manutenção com redirect automático
// Roles disponíveis 'admin' → acesso total 'technician' → ver/criar/editar tarefas 'dashboard' → somente leitura // Permissões granulares permissions: [ 'task.create', 'task.update', 'client.view', 'client.create', 'equipment.manage', 'reports.view', 'admin.panel', ]

Guia de uso do sistema

Tudo que você precisa saber para operar o DashTask no dia a dia.

Instalação

O DashTask é uma aplicação Next.js 16 com banco de dados MariaDB/MySQL. Siga os passos abaixo para configurar o ambiente de produção.

Pré-requisitos

  • Node.js 20+ (ou Bun)
  • MariaDB 10.6+ ou MySQL 8+
  • PM2 para gerenciamento de processo
  • Nginx como proxy reverso (recomendado)

Instalando dependências

bash
# Clone ou extraia o projeto
cd /var/www/dashtask

# Instalar dependências
pnpm install

# Fazer build de produção
pnpm build

# Iniciar com PM2
pm2 start npm --name dashtask -- start
pm2 save

Variáveis de ambiente

Crie um arquivo .env.local na raiz do projeto:

.env.local
# Banco de dados
DB_HOST=localhost
DB_PORT=3306
DB_USER=dashtask
DB_PASSWORD=sua_senha_aqui
DB_NAME=dashtask

# Sessão (gere um token aleatório)
SESSION_SECRET=seu_segredo_aqui_minimo_32_chars

# Porta padrão: 3000
Após a primeira inicialização, acesse /api/install para criar o banco de dados e o usuário admin automaticamente.

Configuração Inicial

Após a instalação, algumas configurações são necessárias antes de usar o sistema em produção.

Checklist do painel Admin

Acesse Admin › Checklist para ver todos os itens pendentes de configuração. O sistema guia você pelos passos necessários.

  • Criar categorias de tarefas (ex.: Instalação, Manutenção, Suporte)
  • Configurar regras de SLA por categoria e prioridade
  • Adicionar técnicos com seus roles e permissões
  • Configurar token do serviço de CEP (opcional)
  • Importar clientes via CSV ou cadastrar manualmente

Modo Manutenção

Para ativar o modo manutenção, vá em Admin › Configurações › Modo Manutenção. Todos os usuários (exceto admin) são redirecionados para uma página de aviso.

O proxy reverso (Nginx) deve ser configurado para apontar para a porta 3000. Consulte a documentação do Nginx para configurar SSL com Certbot.

Gestão de Tarefas

As tarefas são o elemento central do DashTask. Elas representam qualquer trabalho a ser realizado por um técnico para um cliente.

Criando uma tarefa

  1. Clique em Nova Tarefa no topo da tela principal
  2. Preencha título, cliente e técnico (obrigatórios)
  3. Defina prioridade, categoria e data prevista
  4. Adicione uma descrição detalhada
  5. Clique em Criar Tarefa

Status das tarefas

StatusDescriçãoAção seguinte
AbertoTarefa criada, aguardando inícioMover para Em Andamento
Em AndamentoTécnico trabalhandoConcluir ou Bloquear
ConcluídoTrabalho finalizado
CanceladoTarefa descartada

Prioridades

PrioridadeUso recomendado
BaixaMelhorias, sem urgência
NormalDemandas regulares
AltaImpacto no cliente
UrgenteSistema crítico parado

Checklist e anexos

Dentro de cada tarefa, use a aba Checklist para criar subtarefas. A barra de progresso atualiza automaticamente conforme itens são marcados. Na aba Anexos, faça upload de fotos, documentos e evidências do atendimento.

Gestão de Clientes

Clientes são o ponto central de todo atendimento. Cada cliente possui endereço, contato e localização geográfica para uso no GeoDash.

Geocodificação

O sistema oferece três formas de definir as coordenadas de um cliente:

  • Automática por CEP: preenchimento automático ao digitar o CEP
  • Recalcular (Nominatim): geocodificação precisa usando rua + número + cidade
  • Manual: inserção direta de latitude/longitude ou uso do mapa interativo
Use o botão Recalcular após preencher o endereço completo para obter as coordenadas mais precisas via OpenStreetMap Nominatim.

Mapa interativo no cadastro

O formulário de cliente inclui um mini mapa Leaflet no lado direito. Clique em qualquer ponto do mapa para posicionar o pin, ou arraste o pin existente para ajustar a localização. As coordenadas são atualizadas automaticamente nos campos de latitude e longitude.

Importação em lote

Acesse Admin › Clientes › Importar para enviar um arquivo CSV ou JSON. O sistema exibe um preview dos dados antes de confirmar a importação.

CSV — exemplo
NOME;CODIGO;CONTATO;TELEFONE;EMAIL;CLIENTE_ATIVO;CEP;ENDERECO;NUMERO;COMPLEMENTO;BAIRRO;CIDADE;UF;LATITUDE;LONGITUDE
Empresa ABC;CLI001;João Silva;11999990000;joao@abc.com.br;1;01310100;Av. Paulista;1000;;Bela Vista;São Paulo;SP;-23.5613;-46.6558
Indústria XYZ;CLI002;Maria;21988880000;maria@xyz.com;1;20040020;Av. Rio Branco;500;;Centro;Rio de Janeiro;RJ;;

GeoDash

O GeoDash exibe todos os clientes geocodificados em um mapa interativo. Use-o para planejar rotas, identificar concentrações geográficas e monitorar atendimentos por região.

Modos de visualização

ModoMarcadores exibidos
TodosTodos os clientes com coordenadas
TarefasSomente clientes com tarefas abertas
EquipamentosSomente clientes com equipamentos

Comportamento dos clusters

Quando o mapa está afastado (zoom < 9), os marcadores são agrupados em clusters com o número total. Ao aproximar para zoom ≥ 9, todos os marcadores individuais aparecem automaticamente. Clique em um cluster para centralizar e expandir a área.

Mapa por estado

Abaixo do mapa principal, o GeoDash exibe um mapa coroplético do Brasil mostrando a distribuição de clientes por estado. Estados mais escuros indicam maior concentração.

Clientes com status geocode_status = 'pending' não aparecem no mapa. Use o botão Recalcular no cadastro para geocodificá-los.

Estoque e Peças

Controle de peças e materiais utilizados nas tarefas técnicas. Cada tarefa registra os itens consumidos, atualizando o estoque automaticamente.

Cadastro de itens

Acesse Estoque no menu lateral para gerenciar o catálogo de peças.

  • Nome, código interno e unidade de medida
  • Estoque atual e estoque mínimo
  • Alerta automático quando o estoque atinge o mínimo

Consumo por tarefa

Na aba Peças de qualquer tarefa, adicione os itens utilizados com a quantidade. O sistema debita do estoque ao confirmar e exibe histórico completo de uso.

Items com estoque abaixo do mínimo aparecem destacados em vermelho no painel de estoque e no dashboard principal.

Relatórios

Dois modos de relatório para acompanhar a produtividade da equipe e os atendimentos por período.

Relatório Analítico

Lista todas as tarefas do período com detalhes completos: técnico, cliente, categoria, prioridade, data de criação, data de conclusão e status de SLA. Ideal para análise detalhada de atendimentos.

Relatório Sintético

Agrupamento por técnico com totais de tarefas concluídas, pendentes, SLA cumprido e violado. Ideal para avaliação de desempenho da equipe.

Exportação

  • PDF: documento formatado com logo, período e tabela completa
  • CSV: arquivo aberto no Excel para análises avançadas
Use filtros de período, técnico e cliente para delimitar os dados antes de exportar. Períodos muito longos podem resultar em arquivos grandes.

Usuários e Permissões

O controle de acesso do DashTask é baseado em roles com permissões granulares por módulo. Cada usuário pode ter acesso personalizado.

Roles padrão

RoleAcesso
adminAcesso total a todos os módulos e configurações
technicianTarefas, clientes, equipamentos e estoque (sem admin)
dashboardSomente leitura nos painéis principais

Permissões disponíveis

PermissãoDescrição
task.createCriar novas tarefas
task.updateEditar tarefas existentes
task.deleteExcluir tarefas
client.viewVisualizar clientes
client.createCriar e importar clientes
equipment.manageGerenciar equipamentos
reports.viewAcessar relatórios
admin.panelAcessar painel administrativo

SLA e Escalação

O SLA (Service Level Agreement) define o prazo máximo para resolução de tarefas com base na categoria e prioridade.

Configurando regras de SLA

Acesse Admin › SLA e crie regras combinando categoria + prioridade + horas limite.

Escalação automática

Quando uma tarefa ultrapassa o prazo definido, o sistema registra a violação e pode notificar os responsáveis. O dashboard SLA exibe todas as tarefas em risco ou já violadas em tempo real.

Tarefas sem categoria atribuída não têm SLA calculado. Defina sempre uma categoria ao criar tarefas.

Importação de Clientes

Importe uma grande quantidade de clientes de uma só vez usando um arquivo CSV ou JSON. O sistema valida os dados antes de confirmar a importação.

Formato CSV

Use ponto-e-vírgula (;) como separador. Primeira linha deve ser o cabeçalho.

ColunaTipoObrigatório
NOMEtextoSim
CODIGOtextoNão
CONTATOtextoNão
TELEFONEtextoNão
EMAILtextoNão
CLIENTE_ATIVO1 / sim / trueNão (padrão: 1)
CEPtextoNão
ENDERECOtextoNão
NUMEROtextoNão
COMPLEMENTOtextoNão
BAIRROtextoNão
CIDADEtextoNão
UF2 letrasNão
LATITUDEdecimalNão
LONGITUDEdecimalNão

Processo de importação

  1. Acesse Admin › Clientes › Importar
  2. Arraste o arquivo CSV ou JSON para a área de upload
  3. Revise o preview: linhas válidas e erros encontrados
  4. Confirme para importar apenas as linhas válidas
  5. O sistema exibe o total de inseridos e ignorados (duplicatas)

Referência da API

Todos os endpoints da API requerem sessão autenticada. Autentique-se via POST /api/auth/login antes de fazer outras requisições.

Autenticação

POST /api/auth/login
// Requisição
{ "username": "admin", "password": "sua_senha" }

// Resposta 200
{ "ok": true, "user": { "id": 1, "role": "admin" } }

Endpoints principais

MétodoEndpointDescrição
GET/api/tasksListar tarefas com filtros
POST/api/tasksCriar nova tarefa
PATCH/api/tasks/[id]Atualizar tarefa
DELETE/api/tasks/[id]Excluir tarefa
GET/api/clientsListar clientes
POST/api/clientsCriar cliente
GET/api/geodashDados geográficos do mapa
GET/api/reports/analyticalRelatório analítico
GET/api/reports/syntheticRelatório sintético
GET/api/cep/[cep]Consulta de CEP
GET/api/healthStatus da aplicação
Todas as respostas de erro seguem o formato { "error": "Mensagem de erro" } com o HTTP status code adequado.
Roadmap

O que vem por aí

Evolução planejada da plataforma com base no uso real em produção.

Concluído

Kanban com drag & drop
GeoDash com clusters inteligentes
Geocodificação manual + mapa no cadastro
Importação CSV/JSON com 15 campos
SLA e escalação automática
Relatórios PDF e CSV
Controle de estoque por tarefa
Rede de equipamentos com hierarquia
Auditoria completa de ações

Em andamento

Geocodificação em lote dos clientes pendentes
Paginação nos relatórios grandes
Rate limiting nas rotas de autenticação
Sanitização anti-CSV injection
AbortController nas requisições da UI