77 lines
1.9 KiB
Markdown
77 lines
1.9 KiB
Markdown
# Mini-CRM in Laravel for Beginners
|
|
|
|
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.
|
|
|
|

|
|
|
|

|
|
|
|
---
|
|
|
|
## Project Description
|
|
|
|
### Intro
|
|
|
|
- Install Laravel and Laravel Breeze starter kit
|
|
- Use plain Blade, no Vue/Livewire 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 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: Admin role can manage everything, User role can see all entries and create/update them but NOT delete them.
|