PHPackages                             beautiful-sea/laravel\_ramodnil - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. beautiful-sea/laravel\_ramodnil

ActiveLibrary[Admin Panels](/categories/admin)

beautiful-sea/laravel\_ramodnil
===============================

Template Admin para início de projetos com Laravel

0118CSS

Since Jul 12Pushed 5y agoCompare

[ Source](https://github.com/beautiful-sea/laravel-ramodnil)[ Packagist](https://packagist.org/packages/beautiful-sea/laravel_ramodnil)[ RSS](/packages/beautiful-sea-laravel-ramodnil/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (2)Used By (0)

Laravel Ramodnil
================

[](#laravel-ramodnil)

Biblioteca para gerar um template padrão de um painel administrativo responsivo baseado em [Azzara](http://demo.themewagon.com/preview/free-bootstrap-4-html5-admin-dashboard-template-azzara). Já vem com algumas funções pré-definidas, como: controle de usuários, campos com máscara, notificações etc.

[![alt text](https://camo.githubusercontent.com/3f81c804a6bc325f8f13759d3879e61250e74c04c68eb6f917904165a3391d32/68747470733a2f2f692e696d6775722e636f6d2f585168784279462e706e67)](https://camo.githubusercontent.com/3f81c804a6bc325f8f13759d3879e61250e74c04c68eb6f917904165a3391d32/68747470733a2f2f692e696d6775722e636f6d2f585168784279462e706e67)[![alt text](https://camo.githubusercontent.com/151886b2fb62fb53d967ed44ec4c6a2612f6b8ca27882c51d6270ae5d0ffd8c4/68747470733a2f2f692e696d6775722e636f6d2f414268354a366d2e706e67)](https://camo.githubusercontent.com/151886b2fb62fb53d967ed44ec4c6a2612f6b8ca27882c51d6270ae5d0ffd8c4/68747470733a2f2f692e696d6775722e636f6d2f414268354a366d2e706e67)

Índice
------

[](#índice)

1. [Dependências](#dependencias)
2. [Instalação](#instalacao)
3. [Recursos disponíveis](#recursos)

    1. [Formulários](#forms)
    2. [Login](#login)
    3. [Perfis de usuário](#roles)
    4. [Template](#template)
    5. [ACLs](#acl)
    6. [Usuários](#users)
    7. [Rotas](#routes)
    8. [UI](#ui)
        1. [Máscaras](#masks)
        2. [Datepicker](#datepicker)
        3. [Select2](#select2)
        4. [Editor](#editor)
    9. [Validações](#validations)
    10. [Confirmable](#confirmable)
    11. [Animação no submit do formulário](#form-spinner)
    12. [Parsers](#parsers)
    13. [Estados Brasileiros](#ufs)
    14. [Notificações](#notifications)
4. [Bibliotecas utilizadas](#libraries)

 Dependências
-----------------------------------------------------

[](#-dependências)

- [Laravel 5.5 ou superior](https://laravel.com/)
- [NodeJs com NPM](https://nodejs.org/)

 Instalação
-------------------------------------------------

[](#-instalação)

```
$ composer require beautiful-sea/laravel_ramodnil
```

Após baixar o pacote via Composer, você deve rodar o comando abaixo para instalar a biblioteca:

```
$ php artisan ramodnil:install
```

**AVISO**: A instalação da biblioteca vai substituir VÁRIOS arquivos dentro das pastas do seu projeto Laravel. Recomenda-se executar esse comando numa instalação limpa do Laravel.

A instalação pode levar algum tempo, já que vários pacotes NPM serão baixados para seu projeto.

A instalação roda automaticamente o comando `php artisan make:auth` para gerar um sistema de Autenticação com algumas *migrations* já pré-configuradas para uma tabela de usuários, modificada para adicionar alguns campos a mais dos que já vêm na instalação padrão do Laravel.

Após a instalação, você pode executar as migrations através do comando:

```
$ php artisan migrate
```

A instalação copia vários arquivos de estilos e scripts para dentro da pasta *resources*. O arquivo de estilo se encontra em *resources/sass/\_ramodnil.scss* e você deve importa-lo manualmente dentro do arquivo *resources/sass/app.scss*:

```
@import 'ramodnil';
```

Depois de importado, você deve compilar os scripts através do comando:

```
$ npm run dev
```

Ou, se você preferir que a compilação seja feita automaticamente toda vez que um asset for modificado, execute e deixe rodando o comando:

```
$ npm run watch
```

Utilize o seginte comando para fazer a geração automática do autoload com as configurações de [Notificações](#notifications) através do comando:

```
$ composer dump-autoload
```

No seu arquivo de rotas *routes/web.php*, aponte o endereço raiz para a Home:

**Antes:**

```
Route::get('/', function() {
    return view('welcome');
});
```

**Depois:**

```
Route::get('/', 'HomeController@index')->name('home');

\BeautifulSea\LaravelRamodnil\LaravelRamodnilServiceProvider::routes();
```

A instalação adiciona automaticamente suas próprias rotas. Na seção [Rotas](#routes) dentro desse documento, você pode saber como sobrescrever essas rotas.

 Recursos disponíveis
---------------------------------------------------------

[](#-recursos-disponíveis)

###  Formulários

[](#-formulários)

Todos os formulários dentro das views utilizam a biblioteca **BootstrapForms**. Para ler a documentação completa dessa biblioteca, clique [aqui](https://github.com/agenciamaior/bootstrap_forms).

###  Login

[](#-login)

Ao entrar pela primeira vez, o sistema vai pesquisar na tabela de usuários se ela está vazia. Se estiver, você será apresentado a uma tela para cadastrar o primeiro usuário do tipo Administrador.

Esse formulário já conta com uma validação via javascript através da biblioteca [jQuery Validation](https://jqueryvalidation.org/).

Se houverem usuários cadastrados na tabela, você será redirecionado para a tela de login normalmente.

O layout dessa página pode ser encontrado e modificado livremente em */resources/views/auth/login.blade.php*.

###  Perfis de usuário

[](#-perfis-de-usuário)

Essa biblioteca utiliza constantes numéricas para representar os perfis de usuário, são esses:

- Administrador =&gt; 0
- Usuário comum =&gt; 1

Essas constantes são definidas dentro do model *app/User.php*:

```
//...

const ROLE_ADMIN = 0;
const ROLE_COMMON = 1;

public static function roles() {
    return [
        self::ROLE_ADMIN => 'Administrador',
        self::ROLE_COMMON => 'Comum',
    ];
}

public function getRoleStringAttribute() {
    return self::roles()[$this->role];
}

//...
```

Você pode adicionar novos perfis ou alterar os existentes se preferir. Essas constantes são salvas num campo *role* do tipo *INTEGER* dentro da tabela *users* (gerado pela migration da instalação).

A função **getRoleStringAttribute** é um *Accessor* para se obter a representação em formato texto do perfil do usuário. Para saber mais sobre Accessors no Laravel, consulte a [documentação](https://laravel.com/docs/master/eloquent-mutators#accessors-and-mutators).

Exemplo de utilização das constantes:

```
$user->role = \App\User::ROLE_ADMIN;

// Equivalente a:
$user->role = 0;
```

Exemplo de utilização do Acessor:

```
Perfil do Usuário: {{ $user->role_string }}

Perfil do Usuário: Administrador
```

###  Template

[](#-template)

Todos os templates se encontram dentro de */resources/views/ramodnil*. Dentro desse diretório, existe um template *master* onde podem ser adicionadas as meta tags do projeto, assim como alterar o título e outros atributos globais da página.

O template *raw* é usado para telas de login e outras páginas com o mesmo formato.

As demais páginas vão herdar do template *page*.

Para alterar o menu, acesse a view *main-menu* dentro desse diretório. Na seção [Menu](#menu), você pode ver mais detalhes sobre como adicionar itens do menu.

Estrutura da view *resources/views/home.blade.php*, seguindo o template da biblioteca:

```
@extends('ramodnil.page')

@section('css')
    {{-- Seus estilos específicos de página aqui --}}
@endsection

@section('header-title')

        Bem-vindo

@stop

@section('header-breadcrumbs')
    Home
    Dashboard
@endsection

@section('content')
    {{-- Seu conteúdo aqui --}}
@stop

@section('js')
    {{-- Seus scripts específicos de página aqui --}}
@endsection
```

#### Estilos e Scripts

[](#estilos-e-scripts)

Os arquivos de estilo se encontram dentro de *resources/sass/\_ramodnil.scss*. Como mencionado na instalação, esse arquivo não é importado automaticamente para dentro de *resources/sass/app.scss* para não causar conflitos com os estilos atuais do seu projeto. Para importa-lo, utilize no arquivo *app.scss* o comando:

```
@import 'ramodnil';
```

Você vai precisar resolver manualmente qualquer conflito de estilos que surgir depois dessa importação.

Ao contrário do arquivo de estilos, o arquivo de scripts *resources/js/ramodnil.js* já é adicionado automaticamente ao final do arquivo *resources/js/bootstrap.js*.

Assim, você pode definir seus próprios estilos e scripts globais separadamente dos fornecidos pela biblioteca, mas nada impede que você possa modificar esses arquivos, se assim desejar.

Os estilos e scripts específicos por página podem ser colocados em suas respectivas `@section` dentro das views.

###  Menu

[](#-menu)

O template do menu se encontra em *resources/ramodnil/main-menu.blade.php*. No começo desse arquivo, duas variáveis são geradas para identificar qual o Controller atual e qual a Action atual, com isso, é possível tornar o menu ativo quando a página estiver aberta no seu respectivo item de menu.

**Exemplo de um novo item de menu:**

```
@php
	$class = '';

if ($controller == 'AlgumController') {
	$class = 'active';
}
@endphp

        Dashboard

```

A biblioteca utiliza os ícones do [FontAwesome](https://fontawesome.com/), mas você pode utilizar qualquer outra biblioteca de ícones que desejar.

**Exemplo de um novo grupo com dois itens de menu:**

```
@php
$class = 'collapsed';

if ($controller == 'UsersController') {
	$class = 'active show';
}
@endphp

	        Configurações

	        @can('index', \App\User::class)
	        	@php
	         	$class = '';

		         if ($controller == 'UsersController' && $action  'profile')
		         {
		             $class = 'active';
		         }
	        	@endphp

		                Usuários

	        @endcan

	        @php
		        $class = '';

		        if ($controller == 'UsersController' && $action == 'profile')
		        {
		            $class = 'active';
		        }
	        @endphp

		                Perfil

```

###  ACLs

[](#-acls)

A instalação cria automaticamente uma *Policy* para o *Model* de Usuários em *app/Policies/UserPolicy.php*, que já é importada automaticamente pra dentro do arquivo *app/Providers/AuthServiceProvider.php*. As demais Policies devem ser criadas e importadas manualmente. Para saber mais sobre Policies, consulte a [documentação](https://laravel.com/docs/master/authorization) do Laravel.

Uma diretiva padrão para permitir que o usuário administrador tenha acesso a qualquer coisa também já é adicionada ao *AuthServiceProvider.php*:

```
// ...

class AuthServiceProvider extends ServiceProvider
{

    // ...

    public function boot()
    {
        $this->registerPolicies();

        Gate::before(function ($user) {
            if ($user->role == User::ROLE_ADMIN) {
                return true;
            }
        });

        // ...
    }
}
```

#### Exemplos de uso das Policies

[](#exemplos-de-uso-das-policies)

```
@can('create', \App\User::class)
     Novo Usuário
@endcan

@foreach($users as $u)
    @can('edit', $u)
         Editar
    @endcan
@endforeach
```

###  Usuários

[](#-usuários)

A biblioteca gera um CRUD simples de Usuários. Suas views podem ser visualizadas ou modificadas em *resources/views/users* e seu respectivo controller em *app/Http/Controllers/UsersController.php*.

A lista de usuários utiliza o plugin jQuery [DataTables](https://datatables.net/).

Essa área também conta com a função de bloquear/desbloquear os usuários.

Por padrão, você não pode bloquear ou excluir o seu próprio usuário nessa lista. Esse comportamento pode ser alterado dentro dessa mesma *view*.

#### Perfil

[](#perfil)

A biblioteca tem uma página de Perfil, onde você pode alterar sua senha ou enviar uma foto de avatar. Se nenhuma foto for enviada, será usado um *placeholder* com as primeiras letras do seu nome e sobrenome. Esse comportamento pode ser alterado no Accessor **getAvatarAttribute()** dentro do model *app/User.php*.

###  Rotas

[](#-rotas)

A instalação vai adicionar, ao final do arquivo *routes/web.php*, o seguinte comando:

```
\BeautifulSea\LaravelRamodnil\LaravelRamodnilServiceProvider::routes();
```

Que consiste das seguintes rotas:

```
Route::group(['prefix' => '/users'], function () {
    Route::post('/first-user', 'UsersController@storeFirstUser')->name('users.first-user');
    Route::get('/profile', 'UsersController@profile')->name('users.profile');
    Route::post('/profile', 'UsersController@updateProfile')->name('users.save-profile');
    Route::post('/check-email', 'UsersController@checkEmail')->name('users.check-email');
    Route::post('/check-profile-email', 'UsersController@checkProfileEmail')->name('users.check-profile-email');
    Route::post('/check-profile-password', 'UsersController@checkProfilePassword')->name('users.check-profile-password');
    Route::get('/block/{user}', 'UsersController@block')->name('users.block');
    Route::get('/unblock/{user}', 'UsersController@unblock')->name('users.unblock');
});
Route::get('logout', '\App\Http\Controllers\Auth\LoginController@logout');
Route::resource('/users', 'UsersController');
```

Qualquer uma dessas rotas pode ser sobrescrita, contanto que sejam definidas antes do comando acima.

###  UI

[](#-ui)

####  Máscaras

[](#-máscaras)

As máscaras utilizam as bibliotecas jQuery [MaskPlugin](https://github.com/igorescobar/jQuery-Mask-Plugin) e [MaskMoney](https://github.com/plentz/jquery-maskmoney).

Para utilizar essas máscaras, adicione a respectiva classe ao campo:

- **.cpf-mask** - CPF (000.000.000-00)
- **.cnpj-mask** - CNPJ (00.000.000/0000-00)
- **.cpf-cnpj-mask** - CPF ou CNPJ no mesmo campo, muda a medida que você vai digitando
- **.tel-ddd-mask** - Telefone com DDD, aceita com ou sem o dígito 9 ((00) 00000000 ou (00) 900000000)
- **.cep-mask** - CEP (00000-000)
- **.time-mask** - Horas, formato *horas:minutos* (00:00)
- **.date-mask** - Data, formato *dia/mês/ano* (99/99/9999)
- **.money-mask** - Dinheiro (R$ 999.999,99)
- **.number-mask** - Número com casas decimais (999.999,99)
- **.percent-mask** - Porcentagem (999,99%)

A configuração das máscaras pode ser alterada em *resources/js/ramodnil.js*.

####  Datepicker

[](#-datepicker)

Adicione a classe **.datepicker** a um campo para utilizar o Datepicker da biblioteca [jQueryUI](https://jqueryui.com/datepicker/).

**Obs.:** A classe **.date-mask** pode ser usada em conjunto com o Datepicker.

A configuração do Datepicker pode ser alterada em *resources/js/ramodnil.js*.

####  Select2

[](#-select2)

Adicione a classe **.select-2** a um campo do tipo Select para utilizar o [Select2](https://select2.org/).

A configuração do Select2 pode ser alterada em *resources/js/ramodnil.js*.

####  Editor

[](#-editor)

Acidione a classe **.editor** a um campo do tipo TextArea para utilizar o [Summernote](https://summernote.org/).

A configuração do Editor pode ser alterada em *resources/js/ramodnil.js*.

###  Validações

[](#-validações)

Essa seção descreve algumas validações customizadas para serem utilizadas na biblioteca [jQuery Validation](https://jqueryvalidation.org/).

Todas as validações podem ser alteradas em *resources/js/ramodnil.js*.

#### dateBR

[](#datebr)

Valida um campo para uma data válida no formato *dd/mm/aaaa*.

**Exemplo:**

```
{{ Form::bsText('data', 'Data', ['class' => 'datepicker date-mask']) }}
```

```
$('#id-do-formulario').validate({
    rules: {
        data: {
            required: true,
            dateBR: true,
        },
    }
});
```

#### period

[](#period)

Valida um campo de data em relação a outro campo de data para um período válido entre os dois.

**Exemplo:**

```

        {{ Form::bsText('data_inicio', 'Data Início', ['class' => 'datepicker date-mask']) }}

        {{ Form::bsText('data_fim', 'Data Fim', ['class' => 'datepicker date-mask']) }}

```

```
$('#id-do-formulario').validate({
    rules: {
        data_inicio: {
            required: true,
            dateBR: true,
        },
        data_fim: {
            required: true,
            dateBR: true,
            period: ['data_inicio'],
        },
    }
});
```

#### filesize

[](#filesize)

Valida um campo do tipo File para um tamanho de arquivo específico, em Megabytes.

**Exemplo:**

```
{{ Form::bsFile('arquivo', 'Arquivo máx 2MB') }}
```

```
$('#id-do-formulario').validate({
    rules: {
        arquivo: {
            required: true,
            extension: ['jpg', 'jpeg', 'png'],
            filesize: 2,
        },
    }
});
```

#### cpf

[](#cpf)

Valida um campo contendo a máscara **.cpf-mask** para um CPF válido, utilizando a validação de módulo 11.

**Exemplo:**

```
{{ Form::bsText('cpf', 'CPF', ['class' => 'cpf-mask']) }}
```

```
$('#id-do-formulario').validate({
    rules: {
        cpf: {
            required: true,
            cpf: true,
        },
    }
});
```

#### cnpj

[](#cnpj)

Valida um campo contendo a máscara **.cnpj-mask** para um CNPJ válido, utilizando a validação de módulo 11.

**Exemplo:**

```
{{ Form::bsText('cnpj', 'CNPJ', ['class' => 'cnpj-mask']) }}
```

```
$('#id-do-formulario').validate({
    rules: {
        cnpj: {
            required: true,
            cnpj: true,
        },
    }
});
```

#### cpfCnpj

[](#cpfcnpj)

Valida um campo contendo a máscara **.cpf-cnpj-mask** para um CPF/CNPJ válido, utilizando a validação de módulo 11.

**Exemplo:**

```
{{ Form::bsText('cpf_cnpj', 'CPF/CNPJ', ['class' => 'cpf-cnpj-mask']) }}
```

```
$('#id-do-formulario').validate({
    rules: {
        cpf_cnpj: {
            required: true,
            cpfCnpj: true,
        },
    }
});
```

#### editorRequired

[](#editorrequired)

Verifica se um campo contendo a máscara **.editor** está vazio ou não.

**Exemplo:**

```
{{ Form::bsTextarea('editor', 'Editor', ['class' => 'editor']) }}
```

```
$('#id-do-formulario').validate({
    ignore: [], // Essa diretiva é obrigatória para esse validator funcionar
    rules: {
        editor: 'editorRequired',
    }
});
```

###  Confirmable

[](#-confirmable)

Adicione a classe **.confirmable** a qualquer botão ou link para adicionar uma janela de confirmação a ele. Essa função é muito usada em botões de excluir.

###  Animação no submit do formulário

[](#-animação-no-submit-do-formulário)

Por padrão, ao fazer o submit de um formulário, o botão de submit vai ficar desabilitado e o texto dentro dele será substituído por um spinner. Isso impede o usuário de clicar várias vezes no botão de submit.

Para desabilitar esse comportamento, adicione a classe **.without-spinner** à tag `` da sua página.

###  Parsers

[](#-parsers)

Dentro do arquivo *app/Http/Controller/Controller.php*, a instalação vai copiar duas funções para transformar datas e valores do tipo dinheiro.

**Exemplo de utilização dentro de um Controller:**

```
$date = '03/05/2019';
$newDate = $this->parseDate($date); // 2019-05-03

$price = 'R$ 300,00';
$newPrice = $this->parseCurrency($price); // 300
```

###  Estados Brasileiros

[](#-estados-brasileiros)

Dentro do arquivo *app/Http/Controller/Controller.php*, a instalação vai copiar um array com todos os estados brasileiros e suas respectivas siglas:

```
const ESTADOS_BRASILEIROS = [
    'AC' => 'Acre',
    'AL' => 'Alagoas',
    'AP' => 'Amapá',
    'AM' => 'Amazonas',
    'BA' => 'Bahia',
    'CE' => 'Ceará',
    'DF' => 'Distrito Federal',
    'ES' => 'Espírito Santo',
    'GO' => 'Goiás',
    'MA' => 'Maranhão',
    'MT' => 'Mato Grosso',
    'MS' => 'Mato Grosso do Sul',
    'MG' => 'Minas Gerais',
    'PA' => 'Pará',
    'PB' => 'Paraíba',
    'PR' => 'Paraná',
    'PE' => 'Pernambuco',
    'PI' => 'Piauí',
    'RJ' => 'Rio de Janeiro',
    'RN' => 'Rio Grande do Norte',
    'RS' => 'Rio Grande do Sul',
    'RO' => 'Rondônia',
    'RR' => 'Roraima',
    'SC' => 'Santa Catarina',
    'SP' => 'São Paulo',
    'SE' => 'Sergipe',
    'TO' => 'Tocantins'
];
```

**Exemplo de utilização num Select:**

```
{{ Form::bsSelect('estados', 'Estados', \App\Http\Controller::ESTADOS_BRASILEIROS) }}
```

###  Notificações

[](#-notificações)

A biblioteca gera um sistema de notificações inicialmente para criação de usuários, notificando os administradores do painel.

É criado um arquivo em *Notifications/CreatedUser.php*. Esse é o arquivo que cria as notificações.

As notificações são exibidas a partir do arquivo localizado em *resources/views/ramodnil/page.blade.php* como mostrado a seguir:

```
@foreach(auth()->user()->unreadNotifications as $notification)

	@include('layouts.partials.notification.'.snake_case(class_basename($notification->type)))

@endforeach

```

`@include('layouts.partials.notification.'.snake_case(class_basename($notification->type)))` tem a função de incluir o arquivo de exibição criado para cada tipo, esses arquivos estão localizados em *resources/views/layouts/partials/notification/*.

Veja mais sobre Notificações na [documentação do Laravel](https://laravel.com/docs/notifications)

 Bibliotecas utilizadas
------------------------------------------------------------

[](#-bibliotecas-utilizadas)

- [Azzara](http://demo.themewagon.com/preview/free-bootstrap-4-html5-admin-dashboard-template-azzara)
- [FontAwesome 5](https://fontawesome.com/)
- [Bootstrap 4](https://getbootstrap.com/)
- [jQuery Validation](https://jqueryvalidation.org/)
- [Select2](https://select2.org/)
- [jQuery MaskMoney](https://github.com/plentz/jquery-maskmoney)
- [jQuery MaskPlugin](https://github.com/igorescobar/jQuery-Mask-Plugin)
- [Moment.js](https://momentjs.com/)
- [Numeral.js](http://numeraljs.com/)
- [jQueryUI](https://jqueryui.com/)
- [Summernote](https://summernote.org/)
- [Chart.js](https://www.chartjs.org/)
- [BootstrapForms](https://github.com/agenciamaior/bootstrap_forms)

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/a54f6ea212cb9c02b1cf752559b580e431b9e4d0cbab4d716eeccd1a0cd332d4?d=identicon)[lindomar1017](/maintainers/lindomar1017)

---

Top Contributors

[![beautiful-sea](https://avatars.githubusercontent.com/u/33190577?v=4)](https://github.com/beautiful-sea "beautiful-sea (8 commits)")

### Embed Badge

![Health badge](/badges/beautiful-sea-laravel-ramodnil/health.svg)

```
[![Health](https://phpackages.com/badges/beautiful-sea-laravel-ramodnil/health.svg)](https://phpackages.com/packages/beautiful-sea-laravel-ramodnil)
```

###  Alternatives

[jeroennoten/laravel-adminlte

Easy AdminLTE integration with Laravel

4.0k4.8M43](/packages/jeroennoten-laravel-adminlte)[dmstr/yii2-adminlte-asset

AdminLTE backend theme asset bundle for Yii 2.0 Framework

1.1k1.8M67](/packages/dmstr-yii2-adminlte-asset)[dwij/laraadmin

LaraAdmin is a Open source Laravel Admin Panel / CMS which can be used as Admin Backend, Data Management Tool or CRM boilerplate for Laravel with features like CRUD Generation, Module Manager, Media, Menus, Backups and much more

1.6k68.7k](/packages/dwij-laraadmin)[filament/spatie-laravel-media-library-plugin

Filament support for `spatie/laravel-medialibrary`.

1764.8M125](/packages/filament-spatie-laravel-media-library-plugin)[bezhansalleh/filament-exceptions

A Simple &amp; Beautiful Pluggable Exception Viewer for FilamentPHP's Admin Panel

193195.9k13](/packages/bezhansalleh-filament-exceptions)[filament/infolists

Easily add beautiful read-only infolists to any Livewire component.

1220.8M36](/packages/filament-infolists)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
