PHPackages                             sndpbag/admin-panel - 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. sndpbag/admin-panel

ActiveLibrary[Admin Panels](/categories/admin)

sndpbag/admin-panel
===================

This is a Powerfull admin panel package for Laravel.

1.1.0(2mo ago)032↓100%MITBladePHP ^8.1

Since Oct 13Pushed 2mo agoCompare

[ Source](https://github.com/sndpbag/laravel-admin-panel)[ Packagist](https://packagist.org/packages/sndpbag/admin-panel)[ RSS](/packages/sndpbag-admin-panel/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (6)Versions (3)Used By (0)

sndpbag Laravel Admin Panel
===========================

[](#sndpbag-laravel-admin-panel)

[![Latest Version on Packagist](https://camo.githubusercontent.com/c50283ed1e9bcf6f80187d59115440619f9baa4f5cdf3dbc49c7feff2cd84009/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f736e64706261672f61646d696e2d70616e656c2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/sndpbag/admin-panel)[![Total Downloads](https://camo.githubusercontent.com/51d8cf8f0097c964f5d55992c5fd4d0265be3ba53e619b7cbf061c6157e8a726/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f736e64706261672f61646d696e2d70616e656c2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/sndpbag/admin-panel)[![License: MIT](https://camo.githubusercontent.com/1b01ef0024ba0866c115986b895301f657c1b21fc29f05c4844b7f2e8d89204d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e7376673f7374796c653d666c61742d737175617265)](https://opensource.org/licenses/MIT)

A feature-rich, ready-to-use admin panel for Laravel applications, designed to be both powerful and easy to customize. This package provides a complete backend solution with a beautiful UI, secure authentication, user management, PWA support, and much more, right out of the box.

Requirements
------------

[](#requirements)

- PHP 8.1+
- Laravel 10.0+
- GD Extension (Required for Captcha functionality)

🚀 Features
----------

[](#-features)

This admin panel is packed with features to help you build your application faster:

### 🔐 Security &amp; Authentication

[](#-security--authentication)

- **Secure Authentication:** Complete auth scaffolding including registration, login, password reset, and email verification.
- **Two-Factor Authentication (OTP):** Secure login with OTP-based 2FA.
- **Captcha Protection:** Built-in captcha for login and registration forms.

### 👤 User Management

[](#-user-management)

- **CRUD Operations:** Create, Read, Update, and Delete users easily.
- **Role Management:** Assign Admin or User roles with a single click.
- **Soft Deletes:** Trash system to restore or permanently delete users.
- **Advanced Filtering:** Filter users by status, role, or search keywords.
- **Activity Logging:** Tracks user login activity (IP, Location, Device).

### 🎨 Theme &amp; Customization (New!)

[](#-theme--customization-new)

- **Dynamic Themes:** Customize Primary, Secondary, and Accent colors directly from the dashboard.
- **Dark Mode 3.0:** Toggle between **Light**, **Dark**, and **System (Auto)** modes.
- **Persistent Settings:** Theme preferences are saved to the database and sync across devices.
- **Font Customization:** Choose from multiple font families (Poppins, Inter, Roboto).

### 📱 PWA (Progressive Web App) Support (New!)

[](#-pwa-progressive-web-app-support-new)

- **Installable:** Users can install the dashboard as an app on Desktop and Mobile.
- **Offline Mode:** Works even when the internet is down (displays cached pages/offline fallback).
- **Fast Loading:** Service Worker caches static assets for instant load times.

### � Database Management (New!)

[](#-database-management-new)

- **One-Click Backup:** Download complete database backup as SQL file
- **Cross-Platform Compatible:** Pure PHP implementation works on Windows, Linux, Mac
- **Permission-Based:** Restricted access for authorized users only
- **Complete Export:** Includes table structure, data, and foreign keys

### 🔧 Maintenance Mode (New!)

[](#-maintenance-mode-new)

- **Toggle Switch:** Enable/disable maintenance mode with one click
- **Beautiful Maintenance Page:** Animated page with custom messages
- **Secret Bypass URL:** Unique token-based access for administrators
- **IP Whitelist:** Allow specific IPs to bypass maintenance
- **Customizable:** Edit message and settings in real-time
- **Permission-Protected:** Super admin exclusive feature

### �🛠️ Developer Friendly

[](#️-developer-friendly)

- **Config-Driven Sidebar:** Add menu items via `config/admin-panel.php` without touching core code.
- **View Customization:** Publish and modify blade views to match your design.
- **Data Export:** Export user lists to PDF, CSV, or Excel.

---

📦 Installation
--------------

[](#-installation)

You can install the package via Composer.

1. **Require the package:**

    ```
    composer require sndpbag/admin-panel
    ```
2. **Publish Assets and Configuration:**This command will publish the necessary assets (JS, CSS), configuration files, and migrations.

    ```
    php artisan vendor:publish --provider="Sndpbag\AdminPanel\Providers\AdminPanelServiceProvider"
    ```
3. **Run Migrations:**Create the necessary tables in your database.

    ```
    php artisan migrate
    ```
4. **Setup RBAC (Roles &amp; Permissions):**Sync application routes to permissions and create default roles.

    ```
    # Sync routes to permissions
    php artisan dynamic-roles:sync-routes

    # Seed default roles (Admin, Editor, User) and assign permissions
    php artisan db:seed --class=Sndpbag\AdminPanel\Database\Seeders\RolesAndPermissionsSeeder
    ```
5. **Link Storage:**Link the storage folder to public for profile images and uploads.

    ```
    php artisan storage:link
    ```
6. **Configure Mail Settings:**Ensure your `.env` file is configured for verified emails and OTPs.

    ```
    MAIL_MAILER=smtp
    MAIL_HOST=smtp.mailtrap.io
    MAIL_PORT=2525
    MAIL_USERNAME=your_username
    MAIL_PASSWORD=your_password
    MAIL_ENCRYPTION=tls
    MAIL_FROM_ADDRESS="hello@example.com"
    MAIL_FROM_NAME="${APP_NAME}"
    ```

---

🔑 Roles &amp; Permissions
-------------------------

[](#-roles--permissions)

This package comes with a built-in Role-Based Access Control (RBAC) system.

### Create a Super Admin

[](#create-a-super-admin)

You can generate a Super Admin user with full access to the system using the following command:

```
php artisan admin-panel:make-super-admin
```

- The command will ask if you want to create a **New User** or assign the role to an **Existing User**.
- The default login credentials for a new super admin (if you don't customized) are typically:
    - **Role:** Super Admin

### Assign Roles or Permissions

[](#assign-roles-or-permissions)

To manually assign roles or direct permissions to a user via the command line:

```
php artisan admin-panel:assign-access
```

1. Enter the user's **Email Address**.
2. Choose **Role** or **Permission**.
3. Select the desired Role/Permission from the list.

### Syncing Permissions

[](#syncing-permissions)

If you add new routes or want to refresh the permission list based on your route names:

```
php artisan dynamic-roles:sync-routes
```

---

🌐 Social Login (Google &amp; Facebook)
--------------------------------------

[](#-social-login-google--facebook)

Enable users to log in with their Google or Facebook accounts.

### 1. Install Socialite

[](#1-install-socialite)

First, install the Laravel Socialite package in your main application:

```
composer require laravel/socialite
```

### 2. Configure Credentials

[](#2-configure-credentials)

Add your social app credentials to your `.env` file and `config/services.php`.

#### Environment (.env)

[](#environment-env)

```
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
GOOGLE_REDIRECT_URL=http://your-domain.com/login/google/callback

FACEBOOK_CLIENT_ID=your-facebook-client-id
FACEBOOK_CLIENT_SECRET=your-facebook-client-secret
FACEBOOK_REDIRECT_URL=http://your-domain.com/login/facebook/callback
```

> **Note:** If testing locally with XAMPP/WAMP, your redirect URL might look like: `http://localhost/your-project-folder/public/login/google/callback`

#### Services Config (`config/services.php`)

[](#services-config-configservicesphp)

Ensure these keys exist in your application's `config/services.php` file:

```
'google' => [
    'client_id' => env('GOOGLE_CLIENT_ID'),
    'client_secret' => env('GOOGLE_CLIENT_SECRET'),
    'redirect' => env('GOOGLE_REDIRECT_URL'),
],

'facebook' => [
    'client_id' => env('FACEBOOK_CLIENT_ID'),
    'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
    'redirect' => env('FACEBOOK_REDIRECT_URL'),
],
```

### 3. Enable the Buttons

[](#3-enable-the-buttons)

Open `config/admin-panel.php` (published to your config folder) and set the providers to `true`:

```
'social_login' => [
    'google' => true,
    'facebook' => false,
],
```

---

📖 Usage
-------

[](#-usage)

Access the admin panel at:

- **Login:** `/login`
- **Register:** `/register`
- **Dashboard:** `/dashboard`

### Customizing Views

[](#customizing-views)

If you need to modify the design or logic of the dashboard views, you can publish them to your resources folder:

```
php artisan vendor:publish --tag=admin-panel-views
```

Files will be copied to `resources/views/vendor/admin-panel`. Any changes here will override the package defaults.

### PWA Setup (Manual Step)

[](#pwa-setup-manual-step)

The package includes PWA assets, but you need to add your own icons:

1. Navigate to `public/images/icons/`.
2. Add your app icons (must be named `icon-192x192.png` and `icon-512x512.png` etc).

### Adding Sidebar Items

[](#adding-sidebar-items)

Open `config/admin-panel.php` and add to the `sidebar` array:

```
'sidebar' => [
    // ...
    [
        'title' => 'My Page',
        'route' => 'my.route',
        'icon' => '...',
        'active_on' => 'my.route*'
    ],
]
```

### Extending the Layout

[](#extending-the-layout)

To create your own pages using the dashboard layout:

```
@extends('admin-panel::dashboard.layouts.app')

@section('title', 'My Page')

@section('content')

        Welcome to My Custom Page

@endsection
```

---

🔒 Security Features
-------------------

[](#-security-features)

### Roles Page Security Password

[](#roles-page-security-password)

The roles management pages (`/roles`) have an additional security layer. Users with permission to access roles must also enter a security password defined in your `.env` file.

#### Setup

[](#setup)

1. Add the security password to your `.env` file:

```
ROLES_SECURITY_PASSWORD=YourSecurePasswordHere
```

2. Navigate to `/roles` - you'll be prompted for the security password
3. Once verified, the session persists until logout

**Benefits:**

- Extra protection for sensitive role management
- Environment-based password (different for dev/staging/production)
- Session-based verification (no repeated password entry)

---

👥 User Activity Logs
--------------------

[](#-user-activity-logs)

Track and monitor user login activities with detailed information.

### Features

[](#features)

- IP Address tracking
- Geographic location (City, Country)
- Device information (OS, Browser)
- Login timestamp
- User-agent details

### Accessing Logs

[](#accessing-logs)

Navigate to `/user-logs` to view all login activities. Filter by user, date range, or search by location/IP.

### API Integration

[](#api-integration)

User logs are automatically created on successful login. No additional setup required.

---

🎛️ Permission Management
------------------------

[](#️-permission-management)

### Understanding the Permission System

[](#understanding-the-permission-system)

This package uses a dynamic permission system where permissions are automatically generated from route names.

#### Permission Structure

[](#permission-structure)

```
{resource}.{action}

```

**Examples:**

- `users.index` → View users list
- `users.create` → Create new user form
- `users.store` → Save new user
- `users.edit` → Edit user form
- `users.update` → Update user
- `users.destroy` → Delete user

### Creating Permissions for New Routes

[](#creating-permissions-for-new-routes)

#### Method 1: Automatic (Recommended)

[](#method-1-automatic-recommended)

1. Create a **named route** in your `routes/web.php`:

```
Route::get('/posts', [PostController::class, 'index'])->name('posts.index');
```

2. Run the sync command:

```
php artisan dynamic-roles:sync-routes
```

3. Apply permission middleware to the route:

```
Route::get('/posts', [PostController::class, 'index'])
    ->name('posts.index')
    ->middleware('can:posts.index');
```

4. Assign permission to roles via the admin panel at `/roles`

#### Method 2: Manual

[](#method-2-manual)

Create permissions directly in the database:

```
php artisan tinker
```

```
use Sndpbag\AdminPanel\Models\Permission;

Permission::create([
    'name' => 'Posts Index',
    'slug' => 'posts.index',
    'group_name' => 'posts',
]);
```

### Permission Groups

[](#permission-groups)

Permissions are automatically grouped by the first part of the route name:

- `users.*` → Users group
- `roles.*` → Roles group
- `settings.*` → Settings group
- `posts.*` → Posts group

This grouping appears in the roles edit page for better organization.

### Checking Permissions in Code

[](#checking-permissions-in-code)

```
// Check if user has permission
if ($user->hasPermission('posts.create')) {
    // User can create posts
}

// In Blade views
@can('posts.create')
    Create Post
@endcan

// In routes
Route::get('/posts', [PostController::class, 'index'])
    ->middleware('can:posts.index');
```

---

🎨 Theme Customization
---------------------

[](#-theme-customization)

### Color Themes

[](#color-themes)

Users can customize the dashboard appearance from `/settings`:

**Available Options:**

- **Primary Color** - Main brand color
- **Secondary Color** - Supporting color
- **Accent Color** - Highlight color
- **Font Family** - Choose from Poppins, Inter, Roboto, etc.

### Dark Mode

[](#dark-mode)

Three modes available:

- **Light Mode** - Traditional light theme
- **Dark Mode** - Dark theme for reduced eye strain
- **System** - Automatically matches OS preference

Settings are saved per user and persist across sessions.

---

📊 Data Export
-------------

[](#-data-export)

Export user data in multiple formats:

### Available Formats

[](#available-formats)

- **PDF** - Formatted document
- **CSV** - Compatible with Excel, Google Sheets
- **Excel** - Native `.xlsx` format

### How to Export

[](#how-to-export)

1. Navigate to `/users`
2. Click the "Export" dropdown
3. Select your preferred format
4. File downloads automatically

**Export includes:**

- User details (Name, Email, Role, Status)
- Registration date
- Last login information
- Custom filters applied to the list

---

� Database Backup
-----------------

[](#-database-backup)

Export your complete database with a single click.

### Features

[](#features-1)

- **Complete Export:** All tables, structures, and data
- **SQL Format:** Standard MySQL dump format
- **Direct Download:** Instant download, no server storage
- **Permission-Based:** Requires `settings.backup.database` permission

### How to Backup

[](#how-to-backup)

1. Navigate to `/settings`
2. Scroll to **Database Management** section
3. Click "Download Database Backup"
4. Wait for backup generation
5. SQL file downloads automatically

**Backup naming:** `backup_[database_name]_[timestamp].sql`

### Requirements

[](#requirements-1)

- PHP with database connection access
- Sufficient memory for large databases
- Write permissions for temporary storage

---

🔧 Maintenance Mode
------------------

[](#-maintenance-mode)

Put your website into maintenance mode during updates or fixes.

### Key Features

[](#key-features)

- **One-Click Toggle:** Enable/disable instantly
- **Beautiful Page:** Animated maintenance page with custom message
- **Secret Bypass URL:** Share token link for admin access
- **IP Whitelist:** Specific IPs always have access
- **Real-Time Status:** Live indicator (🔴 ACTIVE / 🟢 LIVE)
- **Permission-Protected:** Only super admins can toggle

### Setup

[](#setup-1)

1. **Sync Permissions:**

    ```
    php artisan dynamic-roles:sync-routes
    ```
2. **Assign Permission:**

    - Go to `/roles`
    - Edit Super Admin role
    - Check "Settings Maintenance Toggle"
    - Save

### Usage Guide

[](#usage-guide)

#### Enable Maintenance Mode

[](#enable-maintenance-mode)

1. Go to `/settings`
2. Find **Maintenance Mode** section
3. Click toggle switch
4. Confirm in popup dialog
5. Status changes to **🔴 ACTIVE**
6. **Secret Bypass URL** appears

#### Customize Message

[](#customize-message)

1. Enter custom message in "Customization" section
2. Click "Save Settings"
3. Message appears on public maintenance page

#### Add IP Whitelist

[](#add-ip-whitelist)

1. Enter comma-separated IPs (e.g., `192.168.1.1, 10.0.0.5`)
2. Click "Save Settings"
3. These IPs bypass maintenance automatically

#### Share Bypass Access

[](#share-bypass-access)

1. Copy the secret bypass URL
2. Share with admins/developers
3. Anyone with link can access site
4. New token generated each time maintenance is enabled

#### Disable Maintenance

[](#disable-maintenance)

1. Click toggle switch again
2. Status changes to **🟢 LIVE**
3. Site returns to normal

### Technical Details

[](#technical-details)

**Database Table:** `site_settings`

**Middleware:** `CheckMaintenanceMode`

**Routes:**

- `POST /settings/maintenance/toggle` - Toggle ON/OFF
- `POST /settings/maintenance/update` - Update settings
- `GET /maintenance-bypass/{token}` - Bypass with token

**Excluded Routes:**

- Admin panel routes (`/dashboard`, `/users`, `/roles`, etc.)
- Authentication routes (`/login`, `/logout`)
- Password reset routes

### Troubleshooting

[](#troubleshooting)

**Q: Maintenance page not showing?**

- Check if IP is whitelisted
- Clear browser cache
- Verify maintenance is enabled in database

**Q: Bypass URL not working?**

- Ensure token matches database
- Clear route cache: `php artisan route:clear`
- Check URL is complete (includes token)

**Q: Can't disable maintenance?**

- Access via bypass URL first
- Or update database directly: ```
    UPDATE site_settings SET value='false' WHERE key='maintenance_mode';
    ```

---

�🔧 Artisan Commands Reference
-----------------------------

[](#-artisan-commands-reference)

### User &amp; Role Management

[](#user--role-management)

#### Create Super Admin

[](#create-super-admin)

```
php artisan admin-panel:make-super-admin
```

Creates a new super admin user or assigns super admin role to existing user.

**Options:**

- Interactive mode (default) - Prompts for user details
- Select existing user or create new

#### Assign Access

[](#assign-access)

```
php artisan admin-panel:assign-access
```

Assign roles or permissions to users via CLI.

**Steps:**

1. Enter user email
2. Choose Role or Permission
3. Select from available options

### Permission Management

[](#permission-management)

#### Sync Routes to Permissions

[](#sync-routes-to-permissions)

```
php artisan dynamic-roles:sync-routes
```

Automatically creates permissions for all named routes in your application.

**When to use:**

- After adding new routes
- After deployment
- When permissions are out of sync

#### Seed Default Roles

[](#seed-default-roles)

```
php artisan db:seed --class=Sndpbag\\AdminPanel\\Database\\Seeders\\RolesAndPermissionsSeeder
```

Creates default roles (Admin, Editor, User) and assigns permissions.

### Asset Management

[](#asset-management)

#### Publish Views

[](#publish-views)

```
php artisan vendor:publish --tag=admin-panel-views
```

Publishes Blade templates to `resources/views/vendor/admin-panel` for customization.

#### Publish Config

[](#publish-config)

```
php artisan vendor:publish --provider="Sndpbag\\AdminPanel\\Providers\\AdminPanelServiceProvider"
```

Publishes configuration, assets, and migrations.

#### Clear Cache

[](#clear-cache)

```
php artisan config:clear
php artisan cache:clear
php artisan view:clear
```

Clear all cached configurations and compiled views.

---

🐛 Troubleshooting
-----------------

[](#-troubleshooting)

### Common Issues &amp; Solutions

[](#common-issues--solutions)

#### 1. 403 Forbidden Error

[](#1-403-forbidden-error)

**Problem:** User gets "Unauthorized" error on a page.

**Solution:**

- Check if user has required permission
- Run `php artisan dynamic-roles:sync-routes`
- Verify permission is assigned to user's role at `/roles`

#### 2. Security Password Not Working

[](#2-security-password-not-working)

**Problem:** Correct password rejected at `/roles/security-check`.

**Solution:**

- Check `.env` file has `ROLES_SECURITY_PASSWORD=YourPassword`
- Ensure no extra spaces in the password
- Run `php artisan config:clear`
- Clear browser cache and cookies

#### 3. Captcha Not Showing

[](#3-captcha-not-showing)

**Problem:** Login captcha doesn't display.

**Solution:**

- Verify GD extension is installed: `php -m | grep -i gd`
- Check file permissions on `storage/framework/sessions`
- Clear cache: `php artisan cache:clear`

#### 4. Email Verification Not Sending

[](#4-email-verification-not-sending)

**Problem:** Users don't receive verification emails.

**Solution:**

- Check `.env` mail configuration
- Test mail settings: `php artisan tinker` then `Mail::raw('Test', function($msg) { $msg->to('test@example.com')->subject('Test'); });`
- Check spam folder
- Verify `MAIL_FROM_ADDRESS` is set

#### 5. Dark Mode Not Persisting

[](#5-dark-mode-not-persisting)

**Problem:** Dark mode resets on page refresh.

**Solution:**

- Check database connection
- Verify `user_settings` table exists
- Run migrations: `php artisan migrate`
- Clear browser localStorage and retry

#### 6. PWA Not Installing

[](#6-pwa-not-installing)

**Problem:** "Install App" option not appearing.

**Solution:**

- Ensure app is served over HTTPS (required for PWA)
- Check `manifest.json` is accessible at `/manifest.json`
- Verify icon files exist in `public/images/icons/`
- Use supported browser (Chrome, Edge, Safari)

#### 7. Social Login Errors

[](#7-social-login-errors)

**Problem:** Google/Facebook login fails.

**Solution:**

- Verify credentials in `.env` match provider console
- Check redirect URLs are exact (including http/https)
- Ensure Laravel Socialite is installed
- Confirm provider is enabled in `config/admin-panel.php`

#### 8. Permission Sync Issues

[](#8-permission-sync-issues)

**Problem:** New routes not appearing in permissions.

**Solution:**

- Ensure routes have names: `->name('posts.index')`
- Run sync command: `php artisan dynamic-roles:sync-routes`
- Check routes: `php artisan route:list`
- Verify route names don't start with excluded prefixes (ignition, debugbar)

---

💡 Best Practices
----------------

[](#-best-practices)

### Security

[](#security)

1. **Strong Passwords:** Use complex passwords for roles security and admin accounts
2. **HTTPS:** Always use HTTPS in production for PWA and secure authentication
3. **Environment Variables:** Never commit `.env` to version control
4. **Regular Updates:** Keep Laravel and this package updated

### Performance

[](#performance)

1. **Cache Config:** Run `php artisan config:cache` in production
2. **Optimize Routes:** Run `php artisan route:cache`
3. **Asset Compilation:** Compile assets for production
4. **Database Indexes:** Add indexes on frequently queried columns

### Permissions

[](#permissions)

1. **Consistent Naming:** Use `resource.action` pattern for all routes
2. **Regular Sync:** Sync permissions after adding routes
3. **Least Privilege:** Give users minimum required permissions
4. **Permission Groups:** Keep related permissions in same group

### Development Workflow

[](#development-workflow)

1. **Create Route** with name → 2. **Sync Permissions** → 3. **Apply Middleware** → 4. **Assign to Roles**

---

📚 FAQ
-----

[](#-faq)

### Q: Can I use this package with an existing Laravel project?

[](#q-can-i-use-this-package-with-an-existing-laravel-project)

**A:** Yes! The package is designed to integrate seamlessly with existing projects. Just install and publish the assets.

### Q: How do I remove the default routes (login, register)?

[](#q-how-do-i-remove-the-default-routes-login-register)

**A:** Publish the service provider and modify the route registration, or use route middleware to override default behavior.

### Q: Can users have multiple roles?

[](#q-can-users-have-multiple-roles)

**A:** Currently, users can have one primary role. You can extend the system to support multiple roles by modifying the relationships.

### Q: How do I add custom permissions not tied to routes?

[](#q-how-do-i-add-custom-permissions-not-tied-to-routes)

**A:** Use the manual method described in the Permission Management section or create them via tinker.

### Q: Is this package compatible with Laravel 11?

[](#q-is-this-package-compatible-with-laravel-11)

**A:** Check the packagist page for the latest compatibility. Update the package with `composer update sndpbag/admin-panel`.

### Q: Can I customize the email templates?

[](#q-can-i-customize-the-email-templates)

**A:** Yes, publish views with `--tag=admin-panel-views` and modify the email templates in the vendor folder.

### Q: How do I change the default landing page?

[](#q-how-do-i-change-the-default-landing-page)

**A:** Modify the dashboard route in your `routes/web.php` or publish views and customize the dashboard controller.

### Q: Can I disable certain features (like PWA or 2FA)?

[](#q-can-i-disable-certain-features-like-pwa-or-2fa)

**A:** Yes, modify `config/admin-panel.php` to enable/disable features as needed.

---

🤝 Contributing
--------------

[](#-contributing)

Contributions are welcome! Please feel free to submit a Pull Request.

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

---

📝 Changelog
-----------

[](#-changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

---

🙏 Credits
---------

[](#-credits)

- [Sndpbag](https://github.com/sndpbag)
- [All Contributors](../../contributors)

---

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

39

—

LowBetter than 85% of packages

Maintenance90

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 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.

###  Release Activity

Cadence

Every ~124 days

Total

2

Last Release

84d ago

### Community

Maintainers

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

---

Top Contributors

[![sndpbag](https://avatars.githubusercontent.com/u/142666414?v=4)](https://github.com/sndpbag "sndpbag (19 commits)")

### Embed Badge

![Health badge](/badges/sndpbag-admin-panel/health.svg)

```
[![Health](https://phpackages.com/badges/sndpbag-admin-panel/health.svg)](https://phpackages.com/packages/sndpbag-admin-panel)
```

###  Alternatives

[bagisto/bagisto

Bagisto Laravel E-Commerce

26.2k161.6k7](/packages/bagisto-bagisto)[unopim/unopim

UnoPim Laravel PIM

9.4k1.8k](/packages/unopim-unopim)[slowlyo/owl-admin

基于 laravel、amis 开发的后台框架~

61214.2k26](/packages/slowlyo-owl-admin)[wutongwan/lego

Yet another CRUD widgets for Laravel

1107.7k](/packages/wutongwan-lego)[a2insights/filament-saas

Filament Saas for A2Insights

161.1k](/packages/a2insights-filament-saas)

PHPackages © 2026

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