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