Learning Laravel and want to build your first project? I suggest a task I call "Mini CRM" to manage projects/clients/tasks with simple CRUD.
In this tutorial, you will find four things:
- Task description
- Long 1-hour video of me live-coding the solution
- Shorter 10-minute video version of "What you need to know" (for Premium members)
- Link to the GitHub repository (for Premium members)
Task Description
This is the task I'm suggesting for beginners of Laravel.
Intro
- Install Laravel and Laravel Breeze starter kit
- Use plain Blade, no Vue/Livewire is needed in this project
Manage Users
- Change column
users.name
into separatefirst_name
andlast_name
- Use SoftDeletes in all Models
- CRUD for managing users
- Use pagination in this and all other CRUDs
- Seed 10 "fake" users for testing
Introduce Roles
- Install the Spatie Laravel Permission package
- Seed two roles: "admin" and "user"
- Seed one Admin user, Breeze registration should add users with "User" role
- The "Users" CRUD from above should be available only to Admin user
Three More CRUDs
Create three more CRUDs, here are their DB columns:
Clients (all columns are string)
- contact_name
- contact_email
- contact_phone_number
- company_name
- company_address
- company_city
- company_zip
- company_vat
Projects
- title (string)
- description (text)
- user_id (foreign key)
- client_id (foreign key)
- deadline_at (date)
- status: one of the options of 'open', 'in progress', 'blocked', 'cancelled', 'completed'
Tasks
- title (string)
- description (text)
- user_id (foreign key)
- client_id (foreign key)
- project_id (foreign key)
- deadline_at (date)
- status: one of the options of 'open', 'in progress', 'pending', 'waiting client', 'blocked', 'closed'
Create Factories and Seeders for all those tables, seed 20-50 fake records.
Introduce Permissions: The Admin role can manage everything, and the User role can see all entries and create/update them but NOT delete them.
Longer 1-hour Live-Coding Video
So, I've coded this project and decided to release two videos: a longer one for free on YouTube and a quick rundown of "only things you need to know" for Premium members.
Here's the link to the YouTube video.
Quick 10-minute Rundown Video
This shorter video and the repository link are available only for Premium members.