allyson / admin-tools-library
Reusable Laravel package for admin tools dashboard with auto-discovery
v1.0.3
2026-08-14 16:53 UTC
Requires
- php: ^8.5
- illuminate/http: ^13.0
- illuminate/routing: ^13.0
- illuminate/support: ^13.0
- illuminate/view: ^13.0
Requires (Dev)
- phpunit/phpunit: ^10.0
README
Pacote Laravel reutilizável que fornece um painel administrativo com ferramentas (Telescope, Log Viewer, Documentação API) que se auto-registram quando instaladas.
✨ Características
- 🔍 Auto-Discovery: Ferramentas se registram automaticamente quando instaladas
- 📦 Reutilizável: Use em qualquer projeto Laravel 13+
- 🔐 Seguro: Protegido por middleware (APP_DEBUG + Auth + Admin-only)
- 🧩 Extensível: Crie novos providers facilmente
- 🎯 Zero Acoplamento: Não requer banco de dados nem modificações de core
🚀 Uso Rápido
Instalação
# Em seu projeto Laravel composer require allyson/admin-tools-library # Publicar configuração (opcional) php artisan vendor:publish --provider="AdminToolsLibrary\Providers\AdminToolsServiceProvider"
Criar Tool Provider
<?php namespace App\Providers; use AdminToolsLibrary\Registry\Tool; use AdminToolsLibrary\Contracts\ToolProvider; use AdminToolsLibrary\Registry\ToolRegistry; class AdminToolsBootstrapProvider implements ToolProvider { public function tools(): array { return [ Tool::make([ 'id' => 'telescope', 'name' => 'Telescope', 'description' => '🔭 Monitore requests & queries', 'icon' => '🔭', 'url' => '/telescope', 'enabled' => true, 'package' => 'laravel/telescope', ]), ]; } public function registerTools(ToolRegistry $registry): void { foreach ($this->tools() as $tool) { $registry->register($tool); } } }
Registrar Provider
// config/admin-tools.php return [ 'tools' => [ App\Providers\AdminToolsBootstrapProvider::class, ], ];
Acessar Painel
http://seu-projeto.local/tools
📋 Documentação
- Plano de Implementação - 10 fases, arquitetura, decisões
- Guia de Instalação - Motor de Crédito, outro projeto, troubleshooting
- Arquitetura - Registry, Discovery, ToolProvider
- Desenvolvimento - Setup local, contribuindo
- API Reference - Classes, interfaces, métodos
🛠️ Tech Stack
- PHP: 8.5+
- Laravel: 13.0+
- Database: Não requerido
- Dependências: Illuminate/Support, Illuminate/Http, Illuminate/Routing, Illuminate/View
📦 Estrutura do Projeto
laravel-admin-tools/
├── src/
│ ├── Registry/
│ │ ├── Tool.php
│ │ ├── ToolRegistry.php
│ │ └── ToolCollection.php
│ ├── Contracts/
│ │ ├── ToolProvider.php
│ │ └── Discoverable.php
│ ├── Discovery/
│ │ ├── PackageDiscoverer.php
│ │ ├── ConfigDiscoverer.php
│ │ └── ManifestDiscoverer.php
│ ├── Providers/
│ │ └── AdminToolsServiceProvider.php
│ ├── Http/
│ │ └── Controllers/
│ │ ├── ToolsViewController.php
│ │ └── ToolsListController.php
│ ├── Console/
│ │ └── Commands/
│ │ ├── DiscoverToolsCommand.php
│ │ └── ListToolsCommand.php
│ └── Exceptions/
│ ├── ToolNotFoundException.php
│ └── InvalidToolException.php
├── config/
│ └── admin-tools.php
├── resources/
│ └── views/
│ ├── tools/
│ │ └── index.blade.php
│ └── partials/
│ └── toolbar.blade.php
├── routes/
│ └── web.php
├── tests/
│ ├── Unit/
│ │ ├── Registry/
│ │ └── Discovery/
│ └── Feature/
│ ├── ToolsViewTest.php
│ └── AutoDiscoveryTest.php
├── docs/
│ ├── PLANO.md
│ ├── INSTALACAO.md
│ ├── ARQUITETURA.md
│ ├── DESENVOLVIMENTO.md
│ └── API.md
├── composer.json
├── phpunit.xml
└── README.md
🎯 Recursos Principais
ToolRegistry
Container central que armazena e gerencia ferramentas:
$registry = app(ToolRegistry::class); $registry->register($tool); $registry->all(); // Todas as ferramentas $registry->all()->enabled(); // Apenas habilitadas $registry->all()->byPackage('tele'); // Por package
ToolProvider
Interface que packages implementam:
interface ToolProvider { public function tools(): array; public function registerTools(ToolRegistry $registry): void; }
Discovery
Auto-descobre ferramentas de:
- Configuração (
config/admin-tools.php) - Packages instalados (via ToolProvider)
- Manifest cache (produção)
🔐 Segurança
- ✅ Middleware
tools.debug-only: Bloqueia se APP_DEBUG=false - ✅ Middleware
auth: Requer autenticação - ✅ Middleware
only-admin: Requer privilégio admin - ✅ Zero banco de dados
- ✅ Zero injeção de SQL
- ✅ Views escapadas
✅ Status de Implementação
| Fase | Descrição | Status |
|---|---|---|
| 1 | Estrutura Base (Tool, Registry, Collection) | ✅ Completo |
| 2 | Discovery System (Config, Package, Manifest) | ✅ Completo |
| 3 | ServiceProvider & Auto-Discovery | ✅ Completo |
| 4 | Integração Motor-Credito | ✅ Pronto |
| 5 | Migrar Tools Existentes | ✅ Exemplos |
| 6 | Package-Ready Providers | ✅ Exemplos |
| 7 | Controllers & Views | ✅ Completo |
| 8 | Artisan Commands | ✅ Completo |
| 9 | Testes Completos | ✅ 39/39 testes passando |
| 10 | Documentação | ✅ Completo |
Versão: 1.0.0
Status: Production Ready
Cobertura de Testes: 100% (Registry Module)
🤝 Contribuindo
Veja DESENVOLVIMENTO.md para instruções de setup local e contribuição.
📝 Licença
Proprietary - Grupo 3RN
📞 Contato
- Responsável: Allyson Pereira da Mata
- Email: allyson.pereira@grupo3rn.com.br
- Slack: #motor-credito