QuickAdminPanel: Vue.js+Laravel Version
In August 2020, we released a new separate QuickAdminPanel version that generates Vue.js + Laravel API code.

Compared to the "classic" generator version with jQuery Datatables, this Vue+Laravel code is totally different.
It's a SPA with a front-end-first approach, where most of the logic is inside Vue, using Vue Components, Vue Router, Vuex. Laravel serves only as an API layer, powered by Laravel Sanctum authentication.
Here are a few screenshots of a simple adminpanel, fully generated without writing a single line of code.



For the design, we're using a Material Dashboard theme by Creative Tim, based on Bootstrap 4.
Structure of Generated Vue.js Code
As mentioned above, most of the logic of generated panel is inside of Vue.js SPA application.
That said, the public non-auth part of the website is simple Laravel + Blade, without Vue.js at all, the SPA behavior starts only when you log into the panel.
So, inside of the main Blade file resources/views/layouts/admin/app.blade.php you will find this line:
And from there, everything happens with Vue, in the folder resources/adminapp/js
Here's the code of the main resources/adminapp/js/app.js:
Then, all the generated CRUDs are registered as Routes, in resources/adminapp/js/routes/routes.js:
For every CRUD, we generate a set of Vue.js components, in the folder resources/adminapp/js/components/[CRUD Folder].
Here's an example of the list page of Transactions CRUD, in resources/adminapp/js/components/Transactions/Index.vue:
For the Datatables, we're using the Vue2-Datatable package, which we forked under our own LaravelDaily name, to be able to have more control or fixes if needed.
You can see the contents of all other Vue files by checking out the demo repository.
Laravel API Structure
On the back-end, in Laravel, we generate the API routes and Controllers.
Here's the example routes/api.php:
And here's an example API Controller, in app/Http/Controllers/Api/V1/Admin/TransactionsApiController.php:
We also generate Laravel API Resources, so it would be easier to customize in the future, but they contain mostly default Laravel code. Example from app/Http/Resources/Admin/TransactionResource.php:
As mentioned above, Authorization is powered by Laravel Sanctum, and for Roles and Permissions on the front-end, we use CASL Vue package, see video demo below:
You can look at the full code of this example adminpanel in this public repository.
Last updated