Connecta Skills — Descritivo Técnico
1. Visão Geral
O Connecta Skills é composto por dois projetos separados: connecta-front, uma aplicação Next.js 14 (App Router) responsável pelo painel administrativo, portal do colaborador e páginas públicas de resposta de formulário; e connecta-back, uma API Laravel 11 que centraliza regras de negócio, persistência multi-tenant, geração de PDI via IA e disparo de notificações por e-mail e WhatsApp.
A comunicação entre as camadas é feita via REST/JSON, com autenticação por token Bearer (OAuth2 via Laravel Passport) e um cabeçalho customizado de identificação de empresa (tenant) em rotas do grupo /empresas.
2. Arquitetura
O Frontend do Admin é feito em Next.js 14 (App Router) + TypeScript, portal do colaborador, formulário público de resposta UI Radix UI (shadcn/ui) + TailwindCSS + Lucide Icons Componentes acessíveis, drag-and-drop (dnd-kit), tabelas (@tanstack/react-table) Estado/Formulários Zustand, React Hook Form, Zod Estado global de usuário/empresa, validação de formulários Comunicação HTTP Axios (instância única em app/services/api.tsx) Injeção de Bearer token e headers de tenant Backend API Laravel 11 (PHP 8.2) API REST, regras de negócio, multi-tenancy, jobs assíncronos Autenticação Laravel Passport (OAuth2 Password Grant) + Sanctum Emissão/validação de tokens de acesso da API Persistência PostgreSQL (banco central + 1 banco por empresa/tenant) Isolamento de dados por cliente Integrações OpenAI (PdiIaService), Twilio WhatsApp, Maatwebsite/Excel Geração de PDI por IA, envio de pesquisas via WhatsApp, import/export de planilhas e documentação da API usando o pacote Scribe.
3. Funcionalidades Principais
Frontend (connecta-front)
- Painel administrativo com CRUD genérico reutilizável (
DynamicCrudComponent) para empresas, pessoas, cargos, setores, competências, formulários, pesquisas e respondentes; - Construtor de formulários drag-and-drop (
components/form-builder) com pré-visualização; - Fluxo de resposta pública de pesquisas via link com token (
/respostas/formulario/[slug]), sem exigir login; - Portal do colaborador com autenticação própria, separada da autenticação administrativa;
- Geração e visualização de PDI (Plano de Desenvolvimento Individual), incluindo status de geração assíncrona e exportação em PDF (jsPDF + html2canvas);
- Dashboards e relatórios com gráficos (Chart.js, Nivo) e mapas de calor de competências;
- Importação/exportação de planilhas para cadastros em massa (pessoas, competências e formulários)
Backend (connecta-back)
- Arquitetura multi-tenant: cada empresa possui banco de dados próprio;
- Resolução de tenant por header customizado (
InitializeTenancyByCnpjHeader) em todas as rotas do grupo/empresas; - Motor de pesquisas/formulários dinâmicos com perguntas, opções, pontuação por competência;
- Geração de PDI assistida por IA (OpenAI) via job assíncrono (
GerarPdiJob); - Envio de pesquisas e PDI por e-mail e WhatsApp (Twilio), processado via filas (queue jobs - Redis);
- Sistema de permissões por nível de acesso (
NivelPermissao,PermissaoService)