/ishmael-kragbo

React Frontend Developer Interview Challenge

Primary LanguageJavaScript

ishmael-kragbo

#React Frontend Developer Interview Challenge

As a senior frontend developer at a company that specializes in creating e-commerce platforms, you have been tasked with building a new feature for a client's website. The client sells handmade jewelry and wants to allow customers to filter their search results by multiple criteria such as price, color, material, and occasion.

Your task is to create a React component that implements the filtering feature using the following requirements:

The component should display a form with the following fields:

  1. Price range: A slider that allows the customer to select a range of prices for the jewelry.
  2. Color: A dropdown list with the available colors for the jewelry.
  3. Material: A dropdown list with the available materials for the jewelry.
  4. Occasion: A dropdown list with the available occasions for the jewelry (e.g. birthday, wedding, anniversary, etc.).
  5. The component should be able to update the search results in real-time as the customer changes the filters.
  6. The component should be able to save the selected filters in the URL so that the customer can easily share the filtered search results with others.
  7. The component should be accessible and responsive, meaning that it should be usable on both desktop and mobile devices.

You have the following resources at your disposal:

A mock data that provides access to the jewelry data. The data returns an array of jewelry objects, each with the following properties:

  • id: A unique identifier for the jewelry.
  • name: The name of the jewelry.
  • price: The price of the jewelry.
  • color: The color of the jewelry.
  • material: The material of the jewelry.
  • occasion: The occasion for which the jewelry is suitable.
  • A React component library that you can use to build the form and display the search results.

Your goal is to create a high-quality, well-documented, and maintainable component that meets the client's requirements and exceeds their expectations. You should submit the component code, along with a README file that explains how to use and test the component.

Good luck!