This is a small task for Laravel newcomers to create their first small project and practice their skills on basic CRUD application.
This repository is a solution to the project description below.
- Install Laravel and Laravel Breeze starter kit
- Use plain Blade, no Vue/Livewire needed in this project
- 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
- Install 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
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: Admin role can manage everything, User role can see all entries and create/update them but NOT delete them.