Skip to content

Primeiros Passos

Guia rápido para começar a desenvolver com o Filament Core Starter Kit.

Pré-requisitos

Este guia assume que você já:

  1. Criou um projeto usando laravel new --using=aronpc/filament-core-starter-kit
  2. Configurou o banco de dados no .env
  3. Executou php artisan migrate
  4. 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 dev

2. 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
  • 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

  1. Navegue para PeopleNew Person
  2. 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
  3. (Opcional) Adicione papéis: Cliente, Aluno, Instrutor
  4. Clique em Save

Resultado: Evento PersonCreated é disparado para outros módulos.

Criar uma Fatura

  1. Navegue para InvoicesNew Invoice
  2. Selecione o cliente (pessoa criada anteriormente)
  3. Adicione itens da fatura:
    • Descrição: Nome do produto/serviço
    • Quantidade: Unidades
    • Valor Unitário: Preço por unidade
  4. Impostos são calculados automaticamente
  5. Clique em Save

Resultado:

  • Fatura criada e salva
  • Evento InvoiceCreated disparado
  • Comunicações podem ser enviadas automaticamente

Enviar uma Mensagem

  1. Navegue para CommunicationsNew Message
  2. Selecione o destinatário
  3. Escolha o canal: Email, SMS ou WhatsApp
  4. Selecione um template ou escreva mensagem customizada
  5. Clique em Send

Resultado:

  • Mensagem enviada pelo canal escolhido
  • Histórico salvo para auditoria
  • Evento CommunicationSent disparado

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_BR

2. 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
    ],
];
bash
# Coloque seu logo em:
public/images/logo.svg
# ou
public/images/logo.png

Atualizar 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=InvoicesSeeder

Limpar e Recriar Banco

bash
# Apaga tudo e recria com seeds
php artisan migrate:fresh --seed

Desenvolvimento 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 --generate

Resultado: 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

  1. Criar Listener:
bash
php artisan make:listener SendWelcomeEmail
  1. Registrar no EventServiceProvider:
php
use FilamentCore\Contracts\Events\PersonCreated;
use App\Listeners\SendWelcomeEmail;

protected $listen = [
    PersonCreated::class => [
        SendWelcomeEmail::class,
    ],
];
  1. 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 --coverage

Rodar 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_person

Escrever 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:

  1. 📖 Explore a Estrutura do Projeto em detalhes
  2. ⚙️ Configure Variáveis de Ambiente para suas necessidades
  3. 🚀 Aprenda sobre Funcionalidades Avançadas
  4. 🏗️ Veja Exemplos de Extensões
  5. 🚢 Prepare o Deploy em Produção

Recursos Úteis

Documentação privada do ecossistema Filament Core.