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 separate first_name
and last_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.
Repository
Here's the link to the GitHub repository with the complete code.
What do you think about this format? Live-coding with releasing it in different formats. Let me know in the comments below.