Skip to content

About

Mini CRM Lead Tracker — Projeto para gestão de leads com Laravel + Swagger + Vue (futuro).

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

🚀 Mini CRM Lead Tracker

Um CRM profissional para gestão de leads com multi-tenancy estrito. Desenvolvido com foco em clean code, escalabilidade, documentação e padrões enterprise.

Laravel Build Tests Coverage License Docs


✨ Features

  • 🏢 CRUD de Empresas com isolamento total de dados
  • 👥 Sistema de Usuários com roles (Admin/Operador)
  • 🔐 Autenticação via Laravel Sanctum (Bearer Token)
  • 📊 Kanban de Leads com stages customizáveis
  • 📝 Activity Logs para rastreamento de movimentações
  • 🔒 Multi-tenancy estrito (padrão enterprise CRM/ERP)
  • 📚 Documentação Swagger completa com autenticação
  • 🧪 30 testes automatizados com 100% de cobertura

📚 Documentação


🔧 Stack Tecnológica

  • Laravel 12 (PHP 8.2+)
  • SQLite (dev) / MySQL (produção)
  • Laravel Sanctum (autenticação API)
  • Swagger/OpenAPI (documentação)
  • PHPUnit (testes automatizados)
  • Futuramente: Vue.js 3 + Vite (front-end) e Python (automações)

🚫 Importante

Este projeto é distribuído sob uma licença personalizada de uso exclusivamente educacional e pessoal. É proibido qualquer uso comercial, revenda, SaaS ou qualquer forma de monetização.

Leia os detalhes no arquivo LICENSE.


🚀 Como rodar o projeto localmente

git clone https://github.com/tiagoluvizotoneves/mini-crm-lead-tracker.git
cd mini-crm-lead-tracker

# Instale as dependências
composer install

# Copie o arquivo de ambiente
cp .env.example .env

# Gere a key do projeto
php artisan key:generate

# Rode as migrations
php artisan migrate:fresh --seed

# Inicie o servidor
php artisan serve

🔐 Autenticação

Este projeto utiliza Laravel Sanctum para autenticação via token Bearer.

Login

POST /api/v1/login

Exemplo de payload:

{
  "email": "admin@crm.com",
  "password": "123456"
}

Resposta:

{
  "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOi..."
}

Utilize esse token nas rotas protegidas, incluindo no cabeçalho:

Authorization: Bearer {accessToken}

🔐 Rotas protegidas

As rotas protegidas requerem:

Token de autenticação válido via auth:sanctum

Validação de vínculo com empresa (company.valid)

Resposta:

GET /api/v1/usuario-logado
Authorization: Bearer {accessToken}

🧪 Testando a API

Após autenticar:

Bearer {accessToken}

🧪 Executando Testes

# Rodar todos os testes
php artisan test

# Rodar testes específicos
php artisan test --filter=Company

# Rodar com coverage
php artisan test --coverage

🏗️ Arquitetura

Este projeto segue padrões enterprise de CRM/ERP com:

  • ✅ Multi-tenancy estrito - todo usuário pertence a uma empresa
  • ✅ Defense in Depth - segurança em 3 camadas (Middleware + Policy + Service)
  • ✅ Isolamento total - impossível acessar dados de outra empresa
  • ✅ Padrões da indústria - seguindo Salesforce, HubSpot, Zoho

Leia mais: docs/ARCHITECTURE.md


📊 Endpoints Disponíveis

Autenticação

  • POST /api/v1/login - Login e geração de token

Empresas (Companies)

  • GET /api/v1/companies - Listar empresas
  • GET /api/v1/companies/{id} - Detalhes da empresa
  • POST /api/v1/companies - Criar empresa (admin only)
  • PUT /api/v1/companies/{id} - Atualizar empresa (admin only)
  • DELETE /api/v1/companies/{id} - Deletar empresa (admin only)

Kanban & Leads

  • GET /api/v1/kanban-stages - Listar estágios do Kanban
  • POST /api/v1/kanban-stages - Criar estágio
  • PUT /api/v1/kanban-stages/{id} - Atualizar estágio
  • DELETE /api/v1/kanban-stages/{id} - Deletar estágio
  • PUT /api/v1/leads/{id}/move - Mover lead entre estágios
  • GET /api/v1/leads/{id}/logs - Histórico de movimentações

About

Mini CRM Lead Tracker — Projeto para gestão de leads com Laravel + Swagger + Vue (futuro).

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages