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.
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
- Cores no Filament
- Customização da Aparência do Painel
- Customização de Logotipo
- Edição de Perfil no Filament
- Entendendo o AppServiceProvider
- Fluxo de Registro de Novos Usuários
- Gestão de mídias
- Otimização com #[Computed]
- Login Unificado
- Notificações
- Roles/Permissions
- Suspensão de Usuários
- Gestão de Tenants
- Utilizando Enumerações (Enums) com Filament
- Widgets no Filament
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:
[email protected] - 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:
[email protected] - Senha:
mudar123 - Tenants: Tenant A (Owner), Tenant B (User)
- Acesso ao painel:
/user
- Email:
- Beltrano
- Email:
[email protected] - 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.
- Wallace Martins (@wallacemartinss): Pela disponibilização do website_template, que forneceu uma base excelente e moderna para a construção do portal público deste projeto.
- 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.
- Impersonação de usuários.
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.
-
Edição de Perfil: Avatar, Configurações Personalizáveis e Autenticação de Dois Fatores (2FA).
-
Login Unificado para diferentes painéis: Login com Email e Senha, recuperação de senha.
-
Exibição de Widgets: Widgets personalizados para exibição de métricas e informações relevantes.
-
Website / Landing Page: Página Inicial Completa, Seções Pré-definidas (Hero, Benefícios, Como Funciona, Depoimentos, Tabela de Preços, FAQ, Navegação Integrada).
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.
- egyjs/dbml-to-laravel: Ferramenta para gerar migrações do Laravel a partir de um esquema DBML.
- 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/boost: Otimiza o desempenho de Agentes de IA para o desenvolvimento do sistema em ambiente de desenvolvimento.
- 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.
- leonardolima/laravel-security-check: Verifica dependências do Composer em busca de vulnerabilidades de segurança.
- 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
