Este projeto é a implementação de uma interface de alta fidelidade para a plataforma Nortus, como parte do Desafio React Pleno da Loomi. A aplicação foi construída seguindo as melhores práticas de desenvolvimento com Next.js, focando em uma arquitetura robusta, componentizada e escalável.
A Nortus é uma solução de inteligência artificial para times de vendas e atendimento que utiliza dados comportamentais, análise de perfil e sugestão inteligente de produtos e planos. Esta aplicação é a interface que os operadores e gestores da Nortus utilizam para interagir com clientes, gerenciar tickets de suporte, analisar métricas de performance e receber sugestões da IA para otimizar o atendimento.
O escopo obrigatório do desafio foi totalmente implementado:
-
✅ Autenticação de Usuário:
- Tela de login com validação de e-mail e senha.
- Funcionalidade de visualizar/ocultar senha.
- Armazenamento de token em
cookiese dados do usuário emlocalStorage. - Rotas protegidas com Middleware do Next.js.
-
✅ Dashboard de KPIs:
- Visualização de métricas principais (ARPU, Retenção, Churn, Conversão) com gráficos dinâmicos.
- Mapa interativo de clientes por região com marcadores.
- Gráfico de impacto por segmento.
-
✅ Gestão de Tickets:
- Listagem de tickets com prioridades e status visuais.
- Filtros dinâmicos por status, prioridade e responsável.
- Modal para criação e edição de tickets com validação de campos.
- Atualização automática da tabela após criar ou editar um ticket.
-
✅ Chat & Assistente Virtual:
- Interface de chat com sugestões contextuais da IA exibidas claramente.
- Painel lateral com a Visão 360° do cliente, exibindo histórico de interações e insights inteligentes.
- Botões para ações rápidas como "Enviar proposta" e "Fazer ligação".
Este projeto foi construído com uma stack moderna, seguindo as tecnologias exigidas e recomendadas no desafio:
- Framework: Next.js (v12+)
- Linguagem: TypeScript
- Estilização: Tailwind CSS
- Gestão de Estado: TanStack Query e Zustand
- Formulários: React Hook Form
- Validação de Schemas: Zod
- Componentes de UI: Radix UI (para Modal e Selects acessíveis)
- Gráficos: ApexCharts.js
- Mapas: OpenLayers
- Notificações (Toasts): Sonner
- Internacionalização (i18n): next-intl
- Linting & Formatting: ESLint e Prettier
1. Clonar o repositório:
git clone https://github.com/luispaganini/nortus.git
cd nortus2. Instalar as dependências:
npm install3. Configurar variáveis de ambiente:
cp .env.example .env4. Rodar o projeto:
npm run devA aplicação estará disponível em http://localhost:3000.
Conforme especificado no desafio, todos os dados são consumidos a partir de uma API simulada. Os endpoints e a estrutura de dados seguem a documentação fornecida, com a base URL em:
https://loomi.s3.us-east-1.amazonaws.com/mock-api-json/v2
O uso de IA, especificamente o Google Gemini, foi um pilar central no desenvolvimento deste projeto, atuando como um parceiro de programação (pair programming partner), conforme incentivado no desafio.
Decisões e implementações baseadas em sugestões da IA:
- Arquitetura de Hooks: A separação da lógica de estado (ex:
useTicketModal) e mutações (ex:useTicketMutations) em hooks customizados foi uma sugestão da IA para limpar os componentes. - Gestão de Estado Profissional: A decisão de usar TanStack Query para gerenciar o estado do servidor, incluindo a invalidação de cache para atualização automática da UI, foi refinada com o auxílio da IA.
- Debugging e Refatoração: A IA foi fundamental para identificar e corrigir erros complexos de layout (Flexbox/Grid), bugs de
Suspenseno Next.js e erros de tipagem em TypeScript. - Geração de Código: A IA auxiliou na geração de código boilerplate para componentes, esquemas Zod e na implementação de bibliotecas como OpenLayers e Radix UI.
- Documentação: Este README foi gerado com o auxílio e revisão da IA para garantir clareza e profissionalismo.
Luis Fernando Paganini
- LinkedIn:
https://www.linkedin.com/in/luispaganini/ - GitHub:
https://github.com/luispaganini - E-mail:
luisfernando_paganini@hotmail.com





