For this exercise, you can use any JS/TS libraries, frameworks or build systems that you’d like. The end result should be a functional web page that we can either run or build locally that will demonstrate a working example of the prompt. Code should be shared as a GitHub repository.
If you have any questions or clarification about the prompt, please make your best educated guess about what the user might be asking for and make note of those assumptions. Conversation about your interpretations & possible edge-cases is as important as the quality of the code. Also, the usability of your interface is much more important than the aesthetics.
For the exercise, stand-up a web application and the requested functionality for the component described below. Concentrate on the functionality of the component itself, and unit testing. This exercise is intended to be the start of a larger conversation, so be prepared to discuss any decisions or functionality.
Company X has an application that allows its employees to keep track of its physical inventory. To support this, the employees need to be able to define the layout of a warehouse within the application so that they can associate an item’s storage shelf with a physical location. This is the component that we’ll be focusing on for this exercise.
All warehouses are divided into twelve zones, labeled 1 through 12 respectively. A warehouse can contain any number of shelves, but because of physical limitations, a single zone can only contain a maximum of 10 shelves. Each shelf requires a unique name and a zone assignment.
-
Design and implement an application that will allow the user to define a new warehouse in the system and submit that data to the backend database.
-
Create either a GraphQL mutation (preferred) or REST endpoint (acceptable) to accept the data submitted from the form. The payload schema is up to you.
-
Bonus points for creating any unit tests.