This exercise will have the candidate build CRUD functionality for a sample CRM.
After following the instructions below, the final product should allow the user to index a contact list while also having the ability to create, update and delete a contact.
Please commit the code after clearing each point of this challenge by naming the commit with a significative name.
- Create a database migration for a 'contacts' table with the following columns:
- first_name | required
- last_name | required
- phone | optional
- email | optional
-
Create Model, Controller and the Routes for the CRUD project
-
Build a simple interface with VueJS and TailwindCSS to:
- list all the contacts
- add new contact
- edit an existing contact
- delete a contact from the list
-
[OPTIONAL] Utilize Laravel's form requests to validate the incoming form data. In the validation rules, make the first_name and last_name fields required.
-
[OPTIONAL] Create a login system with 2 different roles (User|Admin). Grant permission to delete contacts only to Admin.
-
[OPTIONAL] Create an email notification to the Admin when a new contact is created
-
[OPTIONAL] Create a seeder to populate the contacts with 50 dummy contacts