docs: atualiza README com funcionalidades da v1.5 - CRM Beta
This commit is contained in:
94
README.md
94
README.md
@@ -5,18 +5,62 @@ Plataforma composta por serviços de autenticação, painel administrativo (supe
|
|||||||
## Visão geral
|
## Visão geral
|
||||||
- **Objetivo**: permitir que superadministradores cadastrem e gerenciem agências (tenants) enquanto o site institucional apresenta informações públicas da empresa.
|
- **Objetivo**: permitir que superadministradores cadastrem e gerenciem agências (tenants) enquanto o site institucional apresenta informações públicas da empresa.
|
||||||
- **Stack**: Go (backend), Next.js 16 (dashboard e site), PostgreSQL, Traefik, Docker.
|
- **Stack**: Go (backend), Next.js 16 (dashboard e site), PostgreSQL, Traefik, Docker.
|
||||||
- **Status**: Sistema multi-tenant completo com segurança cross-tenant validada, branding dinâmico e file serving via API.
|
- **Status**: Sistema multi-tenant completo com CRM Beta (leads, funis, campanhas), portal do cliente, segurança cross-tenant validada, branding dinâmico e file serving via API.
|
||||||
|
|
||||||
## Componentes principais
|
## Componentes principais
|
||||||
- `backend/`: API Go com serviços de autenticação, operadores e CRUD de agências (endpoints `/api/admin/agencies` e `/api/admin/agencies/{id}`).
|
- `backend/`: API Go com serviços de autenticação, operadores e CRUD de agências (endpoints `/api/admin/agencies` e `/api/admin/agencies/{id}`). Inclui handlers para CRM (leads, funis, campanhas), portal do cliente e exportação de dados.
|
||||||
- `front-end-agency/`: Painel Next.js para agências - branding dinâmico, upload de logos, gestão de perfil e autenticação tenant-aware.
|
- `front-end-agency/`: Painel Next.js para agências - branding dinâmico, upload de logos, gestão de perfil, CRM completo com Kanban, portal de cadastro de clientes e autenticação tenant-aware.
|
||||||
- `front-end-dash.aggios.app/`: painel Next.js – login do superadmin, listagem de agências, exibição detalhada e exclusão definitiva.
|
- `front-end-dash.aggios.app/`: painel Next.js – login do superadmin, listagem de agências, exibição detalhada e exclusão definitiva.
|
||||||
- `frontend-aggios.app/`: site institucional Next.js com suporte a temas claro/escuro e compartilhamento de tokens de design.
|
- `frontend-aggios.app/`: site institucional Next.js com suporte a temas claro/escuro e compartilhamento de tokens de design.
|
||||||
- `backend/internal/data/postgres/`: scripts de inicialização do banco (estrutura base de tenants e usuários).
|
- `backend/internal/data/postgres/`: scripts de inicialização do banco (estrutura base de tenants e usuários) + migrações para CRM, funis e autenticação de clientes.
|
||||||
- `traefik/`: reverse proxy e certificados automatizados.
|
- `traefik/`: reverse proxy e certificados automatizados.
|
||||||
|
|
||||||
## Funcionalidades entregues
|
## Funcionalidades entregues
|
||||||
|
|
||||||
|
### **v1.5 - CRM Beta: Leads, Funis e Portal do Cliente (24/12/2025)**
|
||||||
|
- **🎯 Gestão Completa de Leads**:
|
||||||
|
- CRUD completo de leads com status, origem e pontuação
|
||||||
|
- Sistema de importação de leads (CSV/Excel)
|
||||||
|
- Filtros avançados por status, origem, responsável e cliente
|
||||||
|
- Associação de leads a clientes específicos
|
||||||
|
- Timeline de atividades e histórico de interações
|
||||||
|
|
||||||
|
- **📊 Funis de Vendas (Sales Funnels)**:
|
||||||
|
- Criação e gestão de múltiplos funis personalizados
|
||||||
|
- Board Kanban interativo com drag-and-drop
|
||||||
|
- Estágios customizáveis com cores e ícones
|
||||||
|
- Vinculação de funis a campanhas específicas
|
||||||
|
- Métricas e conversão por estágio
|
||||||
|
|
||||||
|
- **🎪 Gestão de Campanhas**:
|
||||||
|
- Criação de campanhas com período e orçamento
|
||||||
|
- Vinculação de campanhas a clientes específicos
|
||||||
|
- Acompanhamento de leads gerados por campanha
|
||||||
|
- Dashboard de performance de campanhas
|
||||||
|
|
||||||
|
- **👥 Portal do Cliente**:
|
||||||
|
- Sistema de registro público de clientes
|
||||||
|
- Autenticação dedicada para clientes (JWT separado)
|
||||||
|
- Dashboard personalizado com estatísticas
|
||||||
|
- Visualização de leads e listas compartilhadas
|
||||||
|
- Gestão de perfil e alteração de senha
|
||||||
|
|
||||||
|
- **🔗 Compartilhamento de Listas**:
|
||||||
|
- Tokens únicos para compartilhamento de leads
|
||||||
|
- URLs públicas para visualização de listas específicas
|
||||||
|
- Controle de acesso via token com expiração
|
||||||
|
|
||||||
|
- **👔 Gestão de Colaboradores**:
|
||||||
|
- Sistema de permissões (Owner, Admin, Member, Readonly)
|
||||||
|
- Middleware de autenticação unificada (agência + cliente)
|
||||||
|
- Controle granular de acesso a funcionalidades
|
||||||
|
- Atribuição de leads a colaboradores específicos
|
||||||
|
|
||||||
|
- **📤 Exportação de Dados**:
|
||||||
|
- Exportação de leads em CSV
|
||||||
|
- Filtros aplicados na exportação
|
||||||
|
- Formatação otimizada para planilhas
|
||||||
|
|
||||||
### **v1.4 - Segurança Multi-tenant e File Serving (13/12/2025)**
|
### **v1.4 - Segurança Multi-tenant e File Serving (13/12/2025)**
|
||||||
- **🔒 Segurança Cross-Tenant Crítica**:
|
- **🔒 Segurança Cross-Tenant Crítica**:
|
||||||
- Validação de tenant_id em endpoints de login (bloqueio de cross-tenant authentication)
|
- Validação de tenant_id em endpoints de login (bloqueio de cross-tenant authentication)
|
||||||
@@ -69,6 +113,7 @@ Plataforma composta por serviços de autenticação, painel administrativo (supe
|
|||||||
4. **Hosts locais**:
|
4. **Hosts locais**:
|
||||||
- Painel SuperAdmin: `http://dash.localhost`
|
- Painel SuperAdmin: `http://dash.localhost`
|
||||||
- Painel Agência: `http://{agencia}.localhost` (ex: `http://idealpages.localhost`)
|
- Painel Agência: `http://{agencia}.localhost` (ex: `http://idealpages.localhost`)
|
||||||
|
- Portal do Cliente: `http://{agencia}.localhost/cliente` (cadastro e área logada)
|
||||||
- Site: `http://aggios.app.localhost`
|
- Site: `http://aggios.app.localhost`
|
||||||
- API: `http://api.localhost`
|
- API: `http://api.localhost`
|
||||||
- Console MinIO: `http://minio.localhost` (admin: minioadmin / M1n10_S3cur3_P@ss_2025!)
|
- Console MinIO: `http://minio.localhost` (admin: minioadmin / M1n10_S3cur3_P@ss_2025!)
|
||||||
@@ -87,15 +132,46 @@ backend/ API Go (config, domínio, handlers, serviço
|
|||||||
internal/
|
internal/
|
||||||
api/
|
api/
|
||||||
handlers/
|
handlers/
|
||||||
files.go 🆕 Handler para servir arquivos via API
|
crm.go 🎯 CRUD de leads, funis e campanhas
|
||||||
|
customer_portal.go 👥 Portal do cliente (auth, dashboard, leads)
|
||||||
|
export.go 📤 Exportação de dados (CSV)
|
||||||
|
collaborator.go 👔 Gestão de colaboradores
|
||||||
|
files.go Handler para servir arquivos via API
|
||||||
auth.go 🔒 Validação cross-tenant no login
|
auth.go 🔒 Validação cross-tenant no login
|
||||||
middleware/
|
middleware/
|
||||||
|
unified_auth.go 🔐 Autenticação unificada (agência + cliente)
|
||||||
|
customer_auth.go 🔑 Middleware de autenticação de clientes
|
||||||
|
collaborator_readonly.go 📖 Controle de permissões readonly
|
||||||
auth.go 🔒 Validação tenant em rotas protegidas
|
auth.go 🔒 Validação tenant em rotas protegidas
|
||||||
tenant.go 🔧 Detecção de tenant via headers
|
tenant.go 🔧 Detecção de tenant via headers
|
||||||
|
domain/
|
||||||
|
auth_unified.go 🆕 Domínios para autenticação unificada
|
||||||
|
repository/
|
||||||
|
crm_repository.go 🆕 Repositório de dados do CRM
|
||||||
backend/internal/data/postgres/ Scripts SQL de seed
|
backend/internal/data/postgres/ Scripts SQL de seed
|
||||||
front-end-agency/ 🆕 Dashboard Next.js para Agências
|
migrations/
|
||||||
app/login/page.tsx 🎨 Login com mensagens humanizadas
|
015_create_crm_leads.sql 🆕 Estrutura de leads
|
||||||
middleware.ts 🔧 Injeção de headers tenant
|
020_create_crm_funnels.sql 🆕 Sistema de funis
|
||||||
|
018_add_customer_auth.sql 🆕 Autenticação de clientes
|
||||||
|
front-end-agency/ Dashboard Next.js para Agências
|
||||||
|
app/
|
||||||
|
(agency)/
|
||||||
|
crm/
|
||||||
|
leads/ 🆕 Gestão de leads
|
||||||
|
funis/[id]/ 🆕 Board Kanban de funis
|
||||||
|
campanhas/ 🆕 Gestão de campanhas
|
||||||
|
cliente/
|
||||||
|
cadastro/ 🆕 Registro público de clientes
|
||||||
|
(portal)/ 🆕 Portal do cliente autenticado
|
||||||
|
share/leads/[token]/ 🆕 Compartilhamento de listas
|
||||||
|
login/page.tsx Login com mensagens humanizadas
|
||||||
|
components/
|
||||||
|
crm/
|
||||||
|
KanbanBoard.tsx 🆕 Board Kanban drag-and-drop
|
||||||
|
CRMCustomerFilter.tsx 🆕 Filtros avançados de CRM
|
||||||
|
team/
|
||||||
|
TeamManagement.tsx 🆕 Gestão de equipe e permissões
|
||||||
|
middleware.ts Injeção de headers tenant
|
||||||
front-end-dash.aggios.app/ Dashboard Next.js Superadmin
|
front-end-dash.aggios.app/ Dashboard Next.js Superadmin
|
||||||
frontend-aggios.app/ Site institucional Next.js
|
frontend-aggios.app/ Site institucional Next.js
|
||||||
traefik/ Regras de roteamento e TLS
|
traefik/ Regras de roteamento e TLS
|
||||||
@@ -121,4 +197,4 @@ traefik/ Regras de roteamento e TLS
|
|||||||
|
|
||||||
## Repositório
|
## Repositório
|
||||||
- Principal: https://git.stackbyte.cloud/erik/aggios.app.git
|
- Principal: https://git.stackbyte.cloud/erik/aggios.app.git
|
||||||
- Branch: dev-1.4 (Segurança Multi-tenant + File Serving)
|
- Branch: crm-beta (v1.5 - CRM Beta com leads, funis, campanhas e portal do cliente)
|
||||||
Reference in New Issue
Block a user