inkasadev / prova-tecnica-studiosol

Minha solução para a prova técnica da empresa Studio Sol

Home Page:https://prova-tecnica-studiosol.surge.sh/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Prova Técnica Studio Sol

O problema consiste em receber um número através de uma requisição e implementar um jogo para acertar este número através de palpites. ​Ao errar um palpite, será informado se o número obtido é maior ou menor do que o palpite feito. O palpite realizado ou ​status code​ de erro de requisição devem ser exibidos na tela no formato de LED de 7 segmentos. O palpite será obtido como entrada em um campo de texto, que deverá ser processado apenas quando o botão ENVIAR for clicado.

Para solucionar o problema proposto, você deverá implementar a solução utilizando, HTML, CSS e Javascript.

Screenshot_0

Instalação

$ npm run setup

Você pode conferir o projeto finalizado clicando aqui.

Implementação

Legenda
✅ Implementado
🔳 Implementado com ressalvas
⬜ Não implementado

Segmentos:

  • ✅ O display pode conter números não-negativos de 1 a 3 algarismos.
  • ✅ O valor numérico exibido nos segmentos deve representar o palpite realizado ou o status code obtido quando a requisição falhar.
  • ✅ Só deve ser apresentada a quantidade de algarismos necessária (O número 29 precisar ser exibido sem zero à esquerda).
  • ✅ Você deve implementar sua própria solução para exibir os segmentos. Não serão aceitas bibliotecas de terceiros para esta etapa. Em especial, ​NÃO​ utilize uma fonte pronta para exibir os segmentos. Botão ​NOVA PARTIDA​:
  • ✅ O botão ficará visível apenas quando houver erro ao receber o número ou quando o jogador acertou o palpite

Campo de entrada:

  • ✅ Mostrar o texto "Digite o palpite" como placeholder
  • ✅ O valor deve aparecer nos segmentos assim que o botão ​ENVIAR ​for clicado e o input deve ser resetado para o estado inicial.
  • ✅ O botão de enviar deverá ficar desabilitado quando houve erro ao receber o número ou quando o jogador acertou o palpite. O usuário deve clicar em "NOVA PARTIDA" neste caso.

Screenshot_1

Pontos extras:

  • 🔳 Testes automatizados​
    • Esse projeto não possui testes ponta a ponta, mas o projeto da lib Studio Led possui testes unitários.
  • ✅ Configuração de bundler​

Biblioteca Studio Led:

No teste diz que não podemos utilizar bibliotecas criadas por terceiros para criar a lógica do LED display. A biblioteca Studio LED foi criada por mim para esse teste. Vocês podem obter mais informações sobre ela nos links abaixo:

Comentários e documentação

O código deste projeto está completamente comentado. A lógica do programa se baseia em alterar o display LED criado pela lib Studio Led de acordo com o número informado pelo usuário quando comparado ao número obtido pela requisição. Além disso, é informado ​em um texto acima do LED​ os resultados possíveis:

  • "Erro": quando houver erro na requisição
  • "É menor": quando o palpite enviado é ​maior​ que o número obtido
  • "É maior": quando o palpite enviado é ​menor​ que o número obtido
  • "Você acertou!!!": quando o palpite enviado é igual ao número obtido

Por fim, é exibido na tela um botão NOVA PARTIDA quando o usuário acerta ou quando ocorre um erro de requisição. Quando o usuário clica nesse botão uma nova partida é criada obtendo outro número aleatório por meio de uma nova requisição.

Screenshot_2

Versionamento

Usamos SemVer para versionamento. Para as versões disponíveis, veja as tags neste repositório.

Autor

Phillipe Martins
Phillipe Martins

Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE.md para detalhes.

About

Minha solução para a prova técnica da empresa Studio Sol

https://prova-tecnica-studiosol.surge.sh/


Languages

Language:JavaScript 59.7%Language:CSS 27.2%Language:HTML 12.7%Language:Shell 0.4%