Coder Social home page Coder Social logo

desafio-bridge-backend's Introduction

Resumo do Projeto

O projeto foi proposto como um desafio do processo seletivo para bolsista de Desenvolvimento Web Full Stack do Laboratório Bridge, buscando construir uma aplicação web que "permita que o usuário insira um número inteiro k e calcule o número de inteiros positivos n menores que k, para os quais n e n + 1 têm o mesmo número de divisores positivos." Por exemplo, caso o usuário inserisse o número 5, receberia como retorno o número 2 sendo o único que atende a esse requisito, logo, existe 1 número que satisfaz essa condição para o número 5.

As restrições técnicas foram:

  • Os cálculos devem ser executados somente pelo backend;
  • Estilize a página utilizando a ferramenta/biblioteca CSS de sua preferência;

Alguns bônus sugeridos e incorporados, foram:
  • Armazenamento e apresentação do histórico dos números informados pelo usuário junto com seus respectivos resultados, e tempo de resposta de cada requisição;
  • Definição de limites e validações para que a aplicação não apresente erros - ou seja, o campo de input da calculador não pode ser vazio, e precisa ser um número inteiro e maior que 1;
  • A solução foi publicada em um cloud provider.
  • Tecnologias e abordagens

    • Para a implementação do frontend do projeto, foi utilizado o ReactJS, conforme sugerido pelo Laboratório;
    • Para a visualização dos resultados do cálculo, foi utilizado o Sweetalert2, por apresentar modais versáteis e customizáveis;
    • Para o registro do histórico dos resultados obtidos, bem como os números inseridos pelo usuário, foi utilizado o armazenamento no local storage do navegador;
    • A estilização da página foi feita com CSS, sendo pensada para se alinhar à identidade visual do Laboratório, levando em consideração suas cores principais, fontes, imagens, e recursos estilísticos;
    • O roteamento foi feito através do React Router Dom, tornando a experiência do usuário mais fluida ao construir um aplicativo de página única (SPA);
    • Para a implementação do backend do projeto, foi utilizado o Java, juntamente ao Spring Boot.
    • Para a hospedagem do backend da aplicação, foi utilizado o heroku, e o backend pode ser acessado através deste link. Para fazer um cálculo diretamente do navegador, é necessário apenas concatenar ao final do link '?input=5', ou qualquer valor desejado, para visualizar o retorno no navegador.
    • Para a hospedagem do frontend da aplicação, foi utilizado o Vercel. A aplicação pode ser acessada online através deste link. O motivo de utilizar-se dois provedores distintos foi apenas para experimentar a facilidade/usabilidade de cada um.

    Como executar?

    1. Baixe e descompacte o projeto, ou faça um git clone no repositório.
    2. No repositório do projeto, execute ./mvnw spring-boot:run
    3. O servidor estará ativo na porta 8090 da sua máquina

    Possíveis melhorias

    Algumns aspectos da aplicação poderiam ser repensados para oferecer uma experiência ainda melhor ao usuário. Entre eles, pode-se citar:

    • Inclusão de responsividade;
    • Melhora no algoritmo que processa o cálculo, no backend
    • Implementação de testes unitários, no backend;
    • Descarte dos modais em telas menores, para facilitar a visualização do resultado, e ser uma experiência mais confortável e adaptada à realidade de telas pequenas.

    Rotas

    • A rota 'calculate' recebe como parâmetro um 'input' numérico, e retorna um JSON, contendo a quantidade de números que satisfazem a condição do cálculo, bem como quais números satisfazem.

    desafio-bridge-backend's People

    Contributors

    luizamedeiros avatar

    Stargazers

    Renata Domingues avatar

    Watchers

     avatar

    Recommend Projects

    • React photo React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo Vue.js

      🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo Django

      The Web framework for perfectionists with deadlines.

    • D3 photo D3

      Bring data to life with SVG, Canvas and HTML. 📊📈🎉

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo Microsoft

      Open source projects and samples from Microsoft.

    • Google photo Google

      Google ❤️ Open Source for everyone.

    • D3 photo D3

      Data-Driven Documents codes.