Proyecto Descargable: Roles de usuario con Laratrust y Admin Dashboard con Laravel 8 y Tailwind 2

Información del proyecto descargable

Este proyecto final te ofrece un punto de partida completo con un sistema de roles con Laratrust basado en un Admin Dashboard, un sistema de autenticación y una aplicación CRUD Datatables completa con gestión de proyectos y usuarios haciendo uso de Laravel 8 y Tailwind 2.

Las características que ofrece son las siguientes, todas personalizables:

  • Sistema de validación completa multi idioma.

  • Sistema de login.

  • Sistema de registro.

  • Sistema de recuperación de contraseña.

  • Sistema de verificación de nuevas cuentas por correo electrónico personalizable.

  • Layout Admin Dashboard con opciones de menú en Sidebar basadas en roles.

  • CRUD de Proyectos ServerSide con Datatables.

  • CRUD de Usuarios ServerSide con Datatables.

  • Export en PDF, Excel, CSV, Print.

  • Patrón repositorio.

  • Validación de formularios con FormRequest.

  • Roles de usuarios (admin y owner) . Admin puede hacerlo todo, Owner solo gestiona sus proyectos de forma completa.

Recursos utilizados en el proyecto

Configurar proyecto

Primero debes instalar las dependencias de PHP y JavaScript, para ello, sitúate en el directorio del proyecto y ejecuta lo siguiente:

composer install
npm install
# entorno de desarrollo
npm run dev
# entorno de producción
npm run prod

Archivo .env

A continuación, actualiza tu archivo .env con tus credenciales de base de datos y servidor de correo electrónico.

Una vez hecho, debes ejecutar las migraciones y el seed para crear usuarios y proyectos de prueba.

php artisan migrate:fresh --seed

Usuarios de pruebas

Existen 2 usuarios ya definidos en el setup con los que puedes acceder para revisar que todo funciona:

Rol admin

Email: [email protected]

Password: password

Rol owner

Email: [email protected]

Password: password

Crea el enlace simbólico al directorio Storage

php artisan storage:link

Personalizar el tema

Este tema utiliza Tailwind 2, toda la configuración utilizada la tienes en el archivo tailwind.config.js, puedes configurar lo que necesites desde ahí. Personalizar las vistas

El sistema de plantillas utilizado en este tema es Blade, tienes todo el contenido en el directorio resources/views.

Personalizar correos electrónicos

Los correos de recuperación de contraseña y verificación de correo electrónico están disponibles en el directorio app/Notifications, puedes sobrescribirlos a tus necesidades para personalizar los emails enviados en cada proceso.

Crea un nuevo CRUD con Datatables basado en roles con Policies

Primero debes ejecutar los siguientes comandos, por ejemplo para crear un Crud de Ciudades.

php artisan make:model City -mf
php artisan datatables:make Cities
php artisan make:request CityRequest
php artisan make:controller CityController --resource
php artisan make:policy CityPolicy --model=City

Una vez hecho, crea su repositorio igual que yo he hecho en el directorio app/Repositories y regístralo en el RepositoryServiceProvider.php.

Recuerda actualizar tu archivo de políticas de acceso, en este caso app/Policies/CityPolicy.php, simplemente debes revisar lo hecho en el archivo app/Policies/ProjectPolicy.php y replicarlo.

Una vez definido tu archivo de políticas de acceso, escribe la lógica de tu controlador CityController escribiendo en el constructor lo mismo que he hecho en el constructor del controlador ProjectController.

/**
* @param CityRepositoryInterface $repository
*/
public function __construct(CityRepositoryInterface $repository) {
    $this->authorizeResource(City::class, 'city'); // aplicamos la política contra rutas resource
    $this->repository = $repository;
}

Eso es todo, a partir de aquí puedes personalizar/añadir lógica a tu proyecto de forma sencilla.

A continuación tienes un vídeo para ver el resultado final


Cursosdesarrolloweb Cursosdesarrolloweb

Cursosdesarrolloweb es una plataforma educativa con cursos y tutoriales en texto y vídeo.

Términos y condiciones Política de privacidad Formulario de contacto

Copyright 2022 © Todos los derechos reservados.

Contacto