Skip to content

MathTrajan/CRM-Syntra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧩 Syntra — CRM de Leads

CRM B2B para gestão do ciclo de vida de leads: captação via webhook, atendimento por vendedor, alertas de leads parados e visão gerencial em dashboard.

Java Spring Boot Spring Security Thymeleaf PostgreSQL Flyway Docker Fly.io


Visão geral

O Syntra organiza a operação comercial em torno do lead. Cada lead percorre um ciclo de vida com status bem definidos, é atribuído a um vendedor responsável e acumula um histórico de interações e follow-ups. O sistema captura leads automaticamente por webhook (integração com fonte externa), sinaliza proativamente os que estão "esfriando" e consolida os números em um dashboard gerencial.

Aplicação server-side renderizada com Thymeleaf, autenticação e autorização com Spring Security, persistência com JPA/Hibernate e schema versionado com Flyway.

Funcionalidades

  • Ciclo de vida do lead com status (NOVO, CADASTRADO_NO_SITE, EM_ATENDIMENTO, AGUARDANDO_RETORNO, CONVERTIDO, PERDIDO, EM_OUTRO_ATENDIMENTO)
  • Captação via webhook com token secreto e integração externa de leads
  • Central de Atenção — alertas de leads parados, calculados por status × dias parados, exibidos apenas para o vendedor responsável, com severidade (Atenção / Urgente)
  • Sino de notificações no topo, com contagem atualizada por polling (~30s)
  • Dashboard com indicadores da operação
  • Atribuição por vendedor e RBAC por perfil de usuário
  • Timeline de interações e follow-ups por lead
  • Exportação de leads em XLSX (ExcelJS)
  • Painel administrativo e gestão de conta do usuário
  • Busca global e filtros na listagem de leads

Stack

Camada Tecnologia
Linguagem Java 17
Framework Spring Boot 3.3.5 (Web, Data JPA, Validation)
Segurança Spring Security 6 + Thymeleaf Extras
View Thymeleaf (SSR) + JS/CSS
Persistência PostgreSQL (produção) · H2 em memória (dev)
Migrations Flyway
Build Maven
Container / Deploy Docker · Fly.io

Como rodar (desenvolvimento)

Perfil dev sobe com banco H2 em memória — não requer PostgreSQL local.

mvn spring-boot:run -Dspring-boot.run.profiles=dev

Aplicação em http://localhost:8080.

As migrations Flyway e o seed inicial são aplicados automaticamente no boot.

Variáveis de ambiente (produção)

Baseadas em .env.example:

Variável Descrição
DATABASE_URL String JDBC do PostgreSQL (ex.: Neon), com sslmode=require
WEBHOOK_SECRET Token que valida as chamadas do webhook de leads
DIVIA_API_BASE_URL / DIVIA_API_TOKEN Integração com a fonte externa de leads
ADMIN_EMAIL / ADMIN_PASSWORD Credenciais iniciais do admin (apenas primeiro boot)
PORT Porta HTTP (padrão 8080)

⚠️ Nunca faça commit de valores reais. Use variáveis de ambiente / secrets do provedor.

Estrutura

src/main/java/com/syntra/
├─ config/       # configuração (segurança, seed dev)
├─ controller/   # rotas web (Auth, Dashboard, Lead, Admin, Conta)
│  └─ api/       # endpoints JSON (leads, alertas, webhook)
├─ dto/          # objetos de transferência (inclui divia/)
├─ model/        # entidades JPA
│  └─ enums/     # StatusLead, Perfil, SeveridadeAlerta, JornadaLead...
├─ repository/   # Spring Data JPA
└─ service/      # regras de negócio (alertas, leads, integração)

src/main/resources/db/  # migrations Flyway (V1..V12) + scripts H2

Deploy

Containerizado via Dockerfile e publicado no Fly.io (fly.toml, região gru):

flyctl deploy --remote-only --ha=false

Desenvolvido por Matheus Trajano · LinkedIn

About

CRM de gestão de leads desenvolvido com Spring Boot, focado em automação comercial, pipeline de vendas e integrações via webhook.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors