/iam-test

Primary LanguageTypeScript

Available Scripts

In the project directory, you can run:

npm start

Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

Original test request

Please let Andrey know to prepare the below:

Come up with a coding exercise that is UI-centric with a focus on building something using “Konva” aka “React-Konva” Canvas API in a modern React ecosystem. Ideally, helpful information and things we are looking for will be:

  • Use GitHub to track commits and push code - Check
  • React most modern CRA is fine - Check
  • State Management Global with Redux or Solely React Context API - Check (Context)
  • TypeScript preferred - Check
  • Material-UI if the component library is used - Check
  • React Query for data fetching - Check

Jordan, may you please let Paige and Colin know of a time on Monday or Tuesday the week of the 19th that could work for a code review with a debrief following?”

Additional features used

  • AWS cognito service for managing user pools & authentication
  • Browser local storage for simulating user selections storage
  • React-ruter for navigation between pages

Application description

Upon loading the app will ask you for the login credentials, use: Login: test@iamrobotics.com Password: TestTest1!

Once logged in you'll be redirected to the dashboard component with React-Konva demo, this will demonstrate a sample component that is reacting to mouse events (move, click&hold)

Dogs tab will demonstrate the implementation of the search mechanism that is using dogs api on the backend. Following features are being used:

  • react-query for making request, maintenance and caching (detools are available if needed in left bottom corner)
  • context api to update the state of the menu component with selected (bookmarked) items, saving state of bookmarks between going thru pages (dogs/dashboard)
  • browser local storage for keeping the state between page reloads (menu state(open/close) and saved bookmarks)

Application code is cleaned to contain no errors/warnings (to the best i can find :)