diff --git a/README.md b/README.md index 1256be4..c69b61b 100644 --- a/README.md +++ b/README.md @@ -5,18 +5,62 @@ Plataforma composta por serviços de autenticação, painel administrativo (supe ## Visão geral - **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. -- **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 -- `backend/`: API Go com serviços de autenticação, operadores e CRUD de agências (endpoints `/api/admin/agencies` e `/api/admin/agencies/{id}`). -- `front-end-agency/`: Painel Next.js para agências - branding dinâmico, upload de logos, gestão de perfil e autenticação tenant-aware. +- `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, 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. - `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. ## 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)** - **🔒 Segurança Cross-Tenant Crítica**: - 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**: - Painel SuperAdmin: `http://dash.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` - API: `http://api.localhost` - 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/ api/ 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 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 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 -front-end-agency/ 🆕 Dashboard Next.js para Agências - app/login/page.tsx 🎨 Login com mensagens humanizadas - middleware.ts 🔧 Injeção de headers tenant + migrations/ + 015_create_crm_leads.sql 🆕 Estrutura de leads + 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 frontend-aggios.app/ Site institucional Next.js traefik/ Regras de roteamento e TLS @@ -121,4 +197,4 @@ traefik/ Regras de roteamento e TLS ## Repositório - Principal: https://git.stackbyte.cloud/erik/aggios.app.git -- Branch: dev-1.4 (Segurança Multi-tenant + File Serving) \ No newline at end of file +- Branch: crm-beta (v1.5 - CRM Beta com leads, funis, campanhas e portal do cliente) \ No newline at end of file