-
Install Node
-
Clone this repository to your local machine
-
Install Visual Studio Code (recommended)
-
Install the node package files
- To install the package files
Run
>npm install
from the root folder of the cloned repository
- Start the http server
- To start the http server
Run
>npm start
from the root folder of the cloned repository
- Open the application in your web browser
- To view the application please open the following url http://localhost:3000/
Using the provided skeleton React application, please create a heatmap using the highcharts and handsontable libraries.
You will need to modify the files in the heatmap widget folder (./widget/heatmap).
- Modify the HightchartsWidget to change the Material UI table to a highcharts heatmap.
- Modify the HandsontableWidget to change the Material UI table to a handsontable that resembles a heatmap. (You do not need to show a legend with the handsontable heatmap.)
Instructions
- You do not need to follow the implemented architecture approach. You are able implement the architecture with what you think would be good in this case.
- Do not use ClassComponents, use functional + react hooks instead
- Do not change the structure of the dataSource files
- Use MaterialUI as the design system library
- Use ContextAPI instead of redux for a global state management (if needed).
- Your solution should be scalable, please, implement it according to idea that the application will grow
If after completing the main task you still have some time, you can implement bonus tasks. Please, do not start with the bonus tasks until you finish the main one.
There are 3 buttons in the appbar of the app (Versions, Products, Regions). These buttons match the names of dataSource files (./src/dataSources).
- Implement data source file switching based on the selected button in the appbar
- All related components should react on data source change and rerender with data from the relevant data source file
- The selected data source should be highlighted in appbar
Implement a custom heatmap table based on Material UI Table Component and render it at the first postion on the main screen