Admin panel to manage companies


Basically, a project to manage companies and their employees. Mini-CRM.

  • Basic Laravel Auth: ability to log in as an administrator
  • Use database seeds to create the first user with email and password “password”
  • CRUD functionality (Create / Read / Update / Delete) for two menu items: Companies and Employees.
  • Companies DB table consists of these fields: Name (required), email, logo (minimum 100×100), website and timestamp for when the record was created and last updated
  • Employees DB table consists of these fields: First name (required), last name (required), Company (foreign key to Companies), email, phone and timestamps.
  • Use database migrations to create those schemas above
  • Store companies logos in storage/app/public folder and make them accessible from public
  • Use basic Laravel resource controllers with default methods – index, create, store etc.
  • Use Laravel’s validation function, using Request classes
  • Use Laravel’s pagination for showing Companies/Employees list, 10 entries per page
  • Use Laravel make:auth as default Bootstrap-based design theme, but remove ability to register
  • Use Laravel Factory to create dummy data for both your companies and employees section

Basically, that’s it. With this simple exercise you should be able to show the skills in basic Laravel fundamentals such as:

  • MVC
  • Auth
  • CRUD and Resource Controllers
  • Eloquent and Relationships
  • Database migrations and seeds
  • Form Validation and Requests
  • File management
  • Basic Bootstrap front-end
  • Pagination

Guess what? – most of the basic web-applications will have these functions as it’s core. There will be a lot more on top of that, but without these fundamentals you cannot move further.

Enjoy the exercise