Primeiros Passos
Guia rápido para começar a desenvolver com o Filament Core Starter Kit.
Pré-requisitos
Este guia assume que você já:
- Criou um projeto usando
laravel new --using=aronpc/filament-core-starter-kit - Configurou o banco de dados no
.env - Executou
php artisan migrate - Criou um usuário admin com
php artisan make:filament-user
Se ainda não fez isso, veja o Guia de Instalação.
Acessar o Painel Administrativo
1. Iniciar Servidor de Desenvolvimento
bash
# Terminal 1: Servidor Laravel
php artisan serve
# Terminal 2: Compilar assets com watch
npm run dev2. Fazer Login
Acesse http://localhost:8000/admin e faça login com as credenciais criadas durante a instalação.
Credenciais padrão:
- Email:
admin@example.com - Senha:
password
⚠️ Importante: Altere a senha padrão imediatamente em produção!
Entender a Estrutura do Painel
Dashboard
A página inicial exibe widgets com métricas principais:
- Pessoas cadastradas: Total de registros em People
- Faturas emitidas: Total de invoices
- Mensagens enviadas: Total via Communications
- Gráficos: Evolução temporal dos dados
Navegação Principal
- Dashboard: Visão geral e métricas
- People: Gerenciar pessoas (físicas/jurídicas)
- Invoices: Criar e gerenciar faturas
- Communications: Histórico de mensagens
- Configurações: Ajustes do sistema
Criar Seu Primeiro Registro
Cadastrar uma Pessoa
- Navegue para People → New Person
- Preencha os campos obrigatórios:
- Nome: Nome completo
- Tipo de Documento: CPF/CNPJ/Passport
- Documento: Número do documento
- Email: Email primário
- Telefone: Telefone de contato
- (Opcional) Adicione papéis: Cliente, Aluno, Instrutor
- Clique em Save
Resultado: Evento PersonCreated é disparado para outros módulos.
Criar uma Fatura
- Navegue para Invoices → New Invoice
- Selecione o cliente (pessoa criada anteriormente)
- Adicione itens da fatura:
- Descrição: Nome do produto/serviço
- Quantidade: Unidades
- Valor Unitário: Preço por unidade
- Impostos são calculados automaticamente
- Clique em Save
Resultado:
- Fatura criada e salva
- Evento
InvoiceCreateddisparado - Comunicações podem ser enviadas automaticamente
Enviar uma Mensagem
- Navegue para Communications → New Message
- Selecione o destinatário
- Escolha o canal: Email, SMS ou WhatsApp
- Selecione um template ou escreva mensagem customizada
- Clique em Send
Resultado:
- Mensagem enviada pelo canal escolhido
- Histórico salvo para auditoria
- Evento
CommunicationSentdisparado
Customizar o Projeto
1. Configurar Informações da Aplicação
Edite .env:
bash
APP_NAME="Minha Aplicação"
APP_URL=http://localhost:8000
# Configurar timezone
APP_TIMEZONE='America/Sao_Paulo'
# Configurar locale
APP_LOCALE=pt_BR
APP_FALLBACK_LOCALE=pt_BR2. Personalizar Logo e Cores
Edite config/filament.php:
php
return [
'brand' => 'Minha Empresa',
'colors' => [
'primary' => '#4c1d95', // Roxo
'success' => '#10b981', // Verde
'warning' => '#f59e0b', // Laranja
'danger' => '#ef4444', // Vermelho
],
];3. Adicionar Seu Logo
bash
# Coloque seu logo em:
public/images/logo.svg
# ou
public/images/logo.pngAtualizar config/filament.php:
php
'logo' => asset('images/logo.svg'),Trabalhar com Dados de Exemplo
Executar Seeders
bash
# Gerar dados de exemplo
php artisan db:seed
# Ou seeder específico
php artisan db:seed --class=PeopleSeeder
php artisan db:seed --class=InvoicesSeederLimpar e Recriar Banco
bash
# Apaga tudo e recria com seeds
php artisan migrate:fresh --seedDesenvolvimento Básico
Criar um Novo Resource no Filament
bash
# Gerar resource completo
php artisan make:filament-resource Product
# Com model, migration e factory
php artisan make:filament-resource Product --generateResultado: Cria arquivos em app/Filament/Resources/ProductResource.php
Adicionar Campos ao Resource
php
use Filament\Forms;
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('name')
->required()
->maxLength(255),
Forms\Components\Textarea::make('description')
->maxLength(65535)
->columnSpanFull(),
Forms\Components\TextInput::make('price')
->numeric()
->prefix('R$')
->required(),
]);
}Adicionar Colunas à Tabela
php
use Filament\Tables;
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('name')
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('price')
->money('BRL')
->sortable(),
Tables\Columns\TextColumn::make('created_at')
->dateTime('d/m/Y H:i')
->sortable(),
]);
}Trabalhar com Eventos
Escutar Evento de Outro Módulo
- Criar Listener:
bash
php artisan make:listener SendWelcomeEmail- Registrar no
EventServiceProvider:
php
use FilamentCore\Contracts\Events\PersonCreated;
use App\Listeners\SendWelcomeEmail;
protected $listen = [
PersonCreated::class => [
SendWelcomeEmail::class,
],
];- Implementar Listener:
php
namespace App\Listeners;
use FilamentCore\Contracts\Events\PersonCreated;
class SendWelcomeEmail
{
public function handle(PersonCreated $event): void
{
$person = $event->person;
// Enviar email de boas-vindas
Mail::to($person->contact->primaryEmail)
->send(new WelcomeMail($person));
}
}Executar Testes
Rodar Todos os Testes
bash
# Suite completa
php artisan test
# Com output detalhado
php artisan test --parallel
# Com coverage
php artisan test --coverageRodar Testes Específicos
bash
# Por pasta
php artisan test tests/Feature/People
# Por arquivo
php artisan test tests/Feature/People/CreatePersonTest.php
# Por método
php artisan test --filter test_can_create_personEscrever Seu Primeiro Teste
php
namespace Tests\Feature;
use Tests\TestCase;
use App\Models\User;
class ExampleTest extends TestCase
{
public function test_user_can_access_dashboard(): void
{
$user = User::factory()->create();
$response = $this->actingAs($user)
->get('/admin');
$response->assertOk();
}
}Próximos Passos
Agora que você está familiarizado com o básico:
- 📖 Explore a Estrutura do Projeto em detalhes
- ⚙️ Configure Variáveis de Ambiente para suas necessidades
- 🚀 Aprenda sobre Funcionalidades Avançadas
- 🏗️ Veja Exemplos de Extensões
- 🚢 Prepare o Deploy em Produção