JeDaVard / juno-engineering-coding-task

Juno Journey's Engineering Coding Task

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Juno Journey's Engineering Coding Task

Instructions

This coding task is used to evaluate new hires for Juno Journey's Engineering Team. The whole task should take around 1.5 hours.

You should fork this repository to your personal Github account. Please invite markjuno and Noapel to your fork. All the code you write should work, should be clean, and use best practices you are familiar with. Testing is mandatory.

Use npm install in the project root to set up.

Structure

Your code should go under src/task1 & src/task2. The api folder provides basic infrastructure to both tasks, and should be kept untouched.

First Task:

Create an image carousel that looks similar to this (and not necessarily exact):

Use npm run start in the project root to run the carousel app.

Requirements

  • The carousel is circular - clicking "next" on the last image will show the first image, and clicking "previous" on the first image will show the last image.
  • Implement a loading state. Carousel image should show loading state until fully fetched (partial images should not be shown). You can use both fetchImage(index) & fetchImages().
  • Implement an empty state
  • Basic tests for your components.
  • Bonus: using material-UI components.
  • Bonus: prefetch images (about to be shown) to lower loading state times.

Please implement the carousel yourself, using third party libraries for this purpose is not allowed.

Second Task:

Implement the TODOs in /task2/ecommerce.js.

Consider an e-commerce website (Amazon for example) with DB which stores users' orders. You should write in total four JavaScript functions, it is recommended to do it in appearing order. The instructions are specified in TODO comments. Do not forget to provide sufficient (automatic) tests for your code!

Use you preferred way (node , ecommerce.test.js) to run and debug the methods.

About

Juno Journey's Engineering Coding Task


Languages

Language:JavaScript 64.8%Language:CSS 19.0%Language:HTML 16.3%