This project is a simple Laravel CRUD for Tasks model built on top of Laravel Breeze starter kit Inertia (Vue) version.
Installation
Follow these steps to set up the project locally:
-
Clone the repository:
git clone https://github.com/LaravelDaily/CRUDs-Laravel-Vue-Inertia.git projectcd project -
Install dependencies:
composer installnpm install && npm run build -
Copy the
.env
file and configure your environment variables:cp .env.example .env -
Generate the application key:
php artisan key:generate -
Set up the database:
- Update
.env
with your database credentials. - Run migrations and seed the database, repo includes fake tasks:
php artisan migrate --seed
- Update
-
If you use Laravel Herd/Valet, access the application at
http://project.test
. -
Log in with credentials:
[email protected]
andpassword
.
How it Works?
This project goes beyond the default Laravel Breeze setup with the following enhancements.
- Return Types in the Controller: ex.
function destroy(Task $task): RedirectResponse
- Utilizes Form Request classes for validation, with
$request->validated()
then used in the Controller - Includes Factory and Seeder for the
Task
Model - Uses pagination in Controller
- Modifies Laravel Breeze Vue component
<InputLabel>
to add a "required" asterisk parameter - Created a custom Vue component
<SelectInput>
for the dropdown using the same Laravel Breeze CSS styles - Uses "flash" messages in the session to show the result after store/update/delete. Adds a custom Vue component
<AlertMessage>
for this. - Transform the links to look like buttons visually, with the same Tailwind styles as Laravel Breeze components. Adds a custom Vue component
<LinkButton>
for this. - Includes Pest test file
TasksCRUDTest
that has methods to test all Controller routes and also validation of each field.