Core Docs
Frontend

Funcionalidades

Inventário de todas as páginas e o que cada uma faz, organizado como o menu lateral.

Visão geral de cada página da aplicação, na mesma ordem em que aparecem no menu lateral (ver Convenções pra como o Sidebar decide o que mostrar). Para o que cada endpoint de backend faz por trás, ver a seção Backend.

Início

Rota: / · sem permissão exigida.

Feed de novidades do sistema ("devblog"), com posts vindos direto do Supabase (não passa pela API do backend). Paginado (5/10/25 por página), sempre ordenado do mais novo pro mais antigo, com o post mais recente destacado. O conteúdo de cada post suporta Markdown e abre num modal com scroll interno.

Diretoria

Aprovação de Vagas — /vacancy-approval (role ADMIN)

Fila de aprovação para vagas com motive = ACCOUNT_EXPANSION e approvalStatus = PENDING (ver Recrutamento). Alternância entre visão em tabela/cards (persistida em cookie), filtros por cliente/cidade e ordenação. Cada item tem botões Aprovar e Rejeitar (rejeição exige motivo) — ambos disparam e-mail automático pro time.

Comercial

Clientes — /clients (permissão client:read)

CRUD de clientes: busca por razão social/nome fantasia, filtro por tipo de pessoa (PJ/PF), ordenação por nome. Edição em /clients/[id]/edit inclui as unidades, contatos e benefícios do cliente (ver Clientes no backend).

Recursos Humanos

Vagas — /vacancy (permissão vacancy:read)

Tela mais rica do sistema: visão tabela/cards, busca por cliente ou cidade, e 6 filtros combináveis (status de aprovação, status operacional, motivo, tipo de serviço, tipo de contratação, ordenação). Permite criar e editar vagas, incluindo upload da imagem de roteiro (roadmap). A aba Candidaturas mostra candidatos vinculados, mantém tag/alerta quando um candidato está restrito, mostra o motivo da restrição no hover, exige confirmação para adicioná-lo à vaga, confirma ações sensíveis em modal (aprovar, reaprovar desistência, registrar desistência, remover) e reaprova candidaturas em WITHDRAWN quando o candidato volta ao processo.

Candidatos — /candidates (permissão candidate:read)

Lista de candidatos com busca por nome e abas Todos / Banco de Talentos. Edição em /candidates/[id]/edit cobre todos os dados pessoais, endereço, CNH, estado civil, escolaridade etc. (ver Recrutamento no backend pra máquina de estados do candidato). Marcar ou remover restrição exige confirmação em modal; ao restringir, o formulário pede o motivo, que aparece no hover da tag Restrito nas listas e nas vagas. Na listagem, restrição e Banco de Talentos aparecem em uma coluna única de Status.

Gerenciamento (todas as páginas desta seção exigem role ADMIN)

Usuários — /users

CRUD de usuários do sistema (busca por nome/e-mail), atribuição de papéis/permissões na edição (/users/[id]/edit).

Níveis de Acesso — /access-levels

Gerencia Roles e quais Permissions cada uma carrega (ver Permissões). Busca por nome/chave, criação e edição de papéis com seleção de permissões.

Auditoria — /audit-log

Consulta o log de auditoria (ver Auditoria no backend) com filtros por usuário ator, tipo de ação e tipo de recurso. Paginado, cada item é expansível pra ver o detalhe da mudança.

Lixeira — /trash

Ver Soft Delete no backend pro conceito. A tela tem uma aba por entidade (Candidatos, Vagas, Clientes, Unidades, Usuários), listando só os registros com soft delete ativo, com seleção em massa e duas ações por item: restaurar ou excluir permanentemente.

Configurações — /settings

Configurações globais do sistema. Hoje controla os destinatários dos e-mails enviados pela rota interna /api/send-email (chamados, ampliação de vaga, vaga aprovada, reprovada e fechada), o remetente/CC e os valores padrão usados no cadastro de novas vagas: salário, alimentação diária, combustível, aluguel, comunicação, periculosidade, plano de saúde e plano odontológico.

Suporte

Chamados — /chamados (sem permissão exigida)

Formulário simples de abertura de chamado (título, categoria — Bug/Dúvida/Sugestão/Outro —, prioridade, descrição). Não tem listagem: o envio dispara um e-mail pro time de suporte via /api/send-email (rota interna do Next.js usando Resend).

Fora do menu

  • Perfil/profile, acessível a qualquer usuário logado (avatar no rodapé do sidebar). Permite editar nome/telefone (e-mail é somente leitura) e trocar a senha.
  • Empregados (/employees) e Banco de Talentos dedicado (/talent-pool) — rotas existem mas mostram só "Em desenvolvimento...". Employees nem aparece no sidebar hoje (comentado no código).

Telas públicas / de erro

/login, /sign-in, /forbidden (403), /unauthenticated (401), /service-unavailable (502/503/erro de rede), /internal-server-error (500), mais o not-found.tsx (404) e os error boundaries error.tsx / global-error.tsx do Next.js. O roteamento entre elas é feito pelo middleware (proxy.ts) e pelo interceptor do axios (shared/lib/api.ts) — ver Convenções pra detalhes de autenticação.

On this page