Este repositório é um Kit de Iniciação (Starter Kit) para o desenvolvimento de aplicações SaaS (Software as a Service) utilizando a stack TALL (Tailwind, Alpine.js, Laravel, Livewire) e Filament.
O objetivo deste projeto é fornecer uma base sólida e rica em recursos para acelerar o desenvolvimento de novas aplicações, seguindo as melhores práticas e convenções do ecossistema Laravel.
Confira também o nosso Roadmap de Desenvolvimento para ver o que planejado para o futuro do kit.
Esta documentação foi criada para facilitar o entendimento de como as funcionalidades do kit foram implementadas, descrevendo os padrões adotados, decisões técnicas e exemplos práticos.
Toda a documentação sobre como utilizar os recursos, padrões e arquitetura deste kit está disponível na pasta /docs. Recomendamos a leitura para todos os desenvolvedores que pretendem utilizar este projeto.
Além disso, este repositório foi indexado nas plataformas de IA DeepWiki e Context7, que auxiliam o leitor a explorar o código e compreender as implementações por meio de buscas contextuais e respostas explicativas.
- Autenticação de Dois Fatores (2FA) no Filament
- Checklist de Segurança
- Content Security Policy (CSP)
- Fluxo de Registro de Novos Usuários
- Fortalecimento de Senha
- Login Unificado
- Prevenção Contra IDOR
- Roles/Permissions
- Suspensão de Usuários
- Gestão de Tenants
- Customização de E-mails e Reset de Senha
- Customização de Cores e CSS Modular
- Customização da Aparência do Painel
- Customização de Logotipo
- Widgets no Filament
- Entendendo o AppServiceProvider
- Arquitetura do Model User
- Integração MongoDB - Auditoria e Logs
- Estratégia de Backup
- Scripts do Composer e Inicialização
- Regras de Negócio
- Gestão de mídias
- Notificações
- Utilizando Enumerações (Enums) com Filament
- Padronização de Data e Hora
- Laravel Boost - MCP para Laravel
- Protocolo de Execução de Skills
- Padrão de Nomenclatura de Skills
- Guia de Workflows do Agente
Antes de começar, certifique-se de ter instalado em sua máquina:
- Docker - Download
- O Docker é essencial para este projeto pois possibilita criar um ambiente de desenvolvimento mais próximo do ambiente de produção, garantindo consistência entre diferentes máquinas e facilitando a implantação.
- Git - Download
- Composer - Download
- Node.js (versão 18 ou superior) - Download
Após rodar as migrations e seeders, os seguintes usuários são criados pelo UserSeeder:
-
Admin (escopo global):
- Email:
admin@labsis.dev.br - Senha:
mudar123 - Acesso ao painel:
/admin - Observação: Possui a role Admin em escopo global.
- Email:
-
Usuários de exemplo (escopo por tenant):
- Sicrano
- Email:
sicrano@labsis.dev.br - Senha:
mudar123 - Tenants: Tenant A (Owner), Tenant B (User)
- Acesso ao painel:
/user
- Email:
- Beltrano
- Email:
beltrano@labsis.dev.br - Senha:
mudar123 - Tenants: Tenant A (User), Tenant B (Owner)
- Acesso ao painel:
/user
- Email:
- Sicrano
Gostaríamos de expressar nossa sincera gratidão a todas as pessoas e equipes cujo trabalho tornou este projeto possível. Suas contribuições para a comunidade de código aberto são uma fonte constante de inspiração e um pilar fundamental para o nosso desenvolvimento.
Em especial, agradecemos a:
- Equipe Laravel: Pela criação e manutenção de um framework robusto, elegante e inovador, disponível em laravel/laravel.
- Equipe Filament: Pelo incrível trabalho no Filament, que nos permite construir painéis administrativos complexos com uma velocidade e simplicidade impressionantes.
- Equipe Spatie (spatie.be): Pelo desenvolvimento dos pacotes laravel-permission e laravel-medialibrary, amplamente utilizados no ecossistema Laravel.
- Comunidade Beer and Code (beerandcode.com.br): Pela excelente metodologia de ensino em Laravel, que tem colaborador com a formação de desenvolvedores PHP, fornecendo conhecimento prático e focado em soluções reais.
- Leandro Costa (@leandrocfe): Por suas valiosas contribuições e por compartilhar conhecimento de alta qualidade sobre Filament em seu canal Filament Brasil no YouTube, que foi fundamental para a implementação de diversas features neste projeto.
- Nanderson Castro (@NandoKstroNet): Pelo excelente trabalho no canal Code Experts, que tem sido uma fonte valiosa de conhecimento técnico e boas práticas de desenvolvimento.
- João Paulo Leite Nascimento (@joaopaulolndev): Pelo desenvolvimento do pacote filament-edit-profile, que revolucionou a experiência de edição de perfil de usuários no Filament. Este pacote oferece uma solução completa e elegante para gerenciamento de perfis de usuário.
- Jeferson Gonçalves (@jeffersongoncalves): Pelo desenvolvimento de diversos pacotes, que agregam grande valor a comunidade filament + laravel.
O trabalho de vocês contribui significativamente para o avanço e a qualidade deste projeto.
O Kit oferece uma base sólida com os seguintes recursos já implementados:
-
Gestão de Tenants: Sistema multi-tenant completo com isolamento de dados por organização. Inclui criação e gerenciamento de tenants, controle de acesso baseado em roles (Admin, Owner, User), e interface administrativa para configuração de permissões por tenant.
-
Gestão de Roles e Permissões: Sistema hierárquico de autorização com três níveis (Admin global, Owner por tenant, User por tenant). CRUD completo para roles e permissões com isolamento por tenant, policies centralizadas e interface de gerenciamento intuitiva.
-
Gestão de Mídias: CRUD completo para mídias, com Preview de Conteúdo, Organização por Tipo e Tamanho Humanizado.
-
Gestão de Usuários: CRUD completo para usuários (Criação, Leitura, Atualização e Exclusão). Sistema de Suspensão de Usuários, Organização em Abas com informações detalhadas (Informações Pessoais, Datas, Suspensão).
-
Customização de Logotipo: Logotipo customizado para o painel de autenticação e para o rodapé do painel.
-
Login Unificado para diferentes painéis: Login com Email e Senha, recuperação de senha e autenticação de dois fatores (2FA).
-
Exibição de Widgets: Widgets personalizados para exibição de métricas e informações relevantes.
-
Website / Landing Page: Página Inicial, Seções Pré-definidas (Hero e Sobre).
-
Registro Histórico de Autenticações: Monitoramento completo de acessos de usuários com armazenamento em MongoDB, incluindo registros de login, logout, endereços IP e dispositivos.
-
Gestão de Templates de E-mail: Funcionalidade para visualizar e testar templates de e-mail diretamente pelo painel administrativo, com suporte a templates customizados e dados reais de preview.
Este projeto integra plugins e pacotes robustos para expandir suas funcionalidades. Abaixo, destacamos os componentes utilizados:
- Filament Easy Footer: Adiciona um rodapé customizável ao painel administrativo, permitindo fácil inclusão de links e informações de copyright.
- Filament Spatie Media Library: Plugin oficial para integrar a poderosa biblioteca Spatie Media Library ao Filament, facilitando o upload e gestão de arquivos.
- Filament Media Action: Fornece ações adicionais para manipulação de mídias dentro do Filament, melhorando a experiência de gerenciamento de arquivos.
- Laravel Authentication Log: Pacote backend que rastreia e registra atividades de autenticação dos usuários, como logins, logouts e dispositivos utilizados.
- Spatie Laravel Backup: Solução completa para backups de banco de dados e arquivos da aplicação, com suporte a notificações e armazenamento em cloud.
- Spatie Laravel Query Builder: Facilita a construção de consultas Eloquent complexas a partir de parâmetros de requisição HTTP, ideal para APIs e filtragem avançada.
Este projeto utiliza um conjunto de ferramentas para garantir a qualidade, padronização e agilidade no desenvolvimento. Abaixo estão os pacotes incluídos no ambiente de desenvolvimento (require-dev):
- barryvdh/laravel-debugbar: Adiciona uma barra de depuração com informações úteis sobre a aplicação.
- beyondcode/laravel-query-detector: Auxilia na identificação de consultas N+1, notificando o desenvolvedor para melhorar a performance da aplicação.
- fakerphp/faker: Gera dados falsos para popular o banco de dados em testes e seeders.
- larastan/larastan: Realiza análise estática de código para encontrar bugs sem executar o código.
- laravel-shift/blueprint: Gera código Laravel rapidamente a partir de um arquivo de definição.
- laravel/boost: Servidor MCP oficial do Laravel que fornece contexto inteligente sobre a aplicação (versões, schema DB, rotas, Artisan) para agentes de IA. Ver documentação.
- laravel/pint: Formata o código PHP para seguir um padrão de estilo consistente (PSR-12).
- laravel/sail: Ambiente de desenvolvimento local completo baseado em Docker.
- laravel/tinker: Console interativo (REPL) para executar código no contexto da aplicação.
- lucascudo/laravel-pt-br-localization: Fornece traduções e configurações para a localização em português do Brasil.
- pestphp/pest: Framework de testes elegante e focado no desenvolvedor para PHP.
Este projeto está licenciado sob a MIT License.
- Iury Oliveira - @iurygdeoliveira
