Test Project Instructions

Mary is a sales representative in a company that makes kitchen cabinets. Customers call her every day asking
about the price of cabinets. She has to find the right cabinets in a catalog, multiply the price of each
cabinet with desired quantity, sum them up and apply a discount manually. Her company is offering a lifetime
supply of cheesecakes to anyone who can help her automate this process.

Your task is to create an app with 2 modules: Cabinets and Proposal. App will be SPA that communicates with Laravel API endpoints. Cabinets module will be used for cabinet CRUD operations, while Proposal module will allow user to select existing cabinets, set their quantities, enter discount and see the total price.

The app should satisfy the following user stories

  • As a user I would like to be able to add cabinets by entering ‘code’, ‘description’ and ‘price’
  • As a user I would like to be able to see the existing cabinets in a table (code, description, price, updated_at as columns)
  • As a user I would like to be able to update and delete existing cabinets
  • As a user I would like to create a proposal by selecting existing cabinets and their quantities and applying a discount(%)

Important notes

  • To keep it simple, no authentication is required
  • Pagination, filtering and sorting of cabinets is not required
  • There is no backend work for Proposal module, it will not be persisted in database
  • API endpoints for Cabinet management must be done in Laravel and covered with unit/feature tests
  • Proposal module must be implemented with NGRX libary

The following sketches should give you a better understanding of the requirements:

Cabinets Index

Cabinets Create

Cabinets Update

Proposal