Objetivo

O objetivo deste desafio é criar uma aplicação React onde você cria e gerencia Hotspots, tudo na mesma interface.

O que é um Hotspot? Um Hotspot nesse contexto é um efeito visual que usamos para mostrar algo novo em uma interface. Geralmente é uma bolinha com alguma animação tentando chamar a atenção do usuário, e ao clicar na bolinha abre-se uma caixa com a explicação. Veja Imagem 1

Requisitos

  • A aplicação deve ser feita usando React, seguindo o layout da Imagem 2.
  • Ao clicar no botão “Criar Hotspot”, deve-se iniciar o processo de captura do elemento no qual o Hotspot estará vinculado, e também a posição exata do clique. Imagem 3
  • Na captura, a cada movimento do mouse, deve-se mostrar ao usuário um feedback de qual elemento ele estará selecionando. Algo como o “Inspecionador do Google Chrome Dev Tools”.
  • Ao clicar em algum elemento da página
    • deve mostrar um efeito visual (bolinha vermelha) indicando o local exato em que foi clicado;
    • deve atualizar a lista de hotspots logo abaixo do botão “Criar Hotspot”;
    • abrir um popover onde o usuário poderá digitar um título e uma mensagem (veja a Imagem 1 como referência)
    • deve salvar as informações do hotspot (localStorage)
  • Na listagem de hotspots, ao clicar em “Delete”, deve-se:
    • Remover o hotspot (efeito visual) da interface e;
    • Atualizar a lista de hotspots
  • Utilizar Redux para controlar o estado da aplicação (ex: hotspot cadastrados)

Bonus

  • Atenção para o layout
  • Criação de testes para os componentes (Biblioteca fica a seu critério)
  • Usar (quando necessário), features das novas versões do JS
  • Documentação

O que iremos avaliar

  • Stack utilizada, nós usamos: React, Redux, Webpack (CSS fica a seu critério)
  • Qualidade do código (semântico, legibilidade, modular, etc)

Imagem 1




Imagem 2




Imagem 3