Este repositório é do back-end do trabalho semestral da matéria de Programação em Microinformatica do 1º semestre de Análise e Desenvolvimento de Sistemas da Faculdade de Tecnologia de São José dos Campos - Prof. Jessen Vidal, cuja a mesma é palestrada pelo Prof. Jean Carlos Lourenço Costa. Este projeto teve como finalidade desenvolver uma aplicação mobile no modelo de Quiz e o tema escolhido por mim foi sobre o coronavírus, devido a situação atual em que o planeta vive de pandemia de Covid-19, portando decidi fazer esse aplicativo com característica mais informativa unindo o aprendizado descontraído de um Quiz.
Este back-end trata-se de uma API-REST feita em NodeJS com a utilização do Express e o MongoDB, contendo um módulo de autenticação e criação de Quiz e possuindo um controle de rotas/endpoints com um middleware responsável pela verificação de token.
Para disponibilizar de modo mais prático e fácil esta API, foi realizado o deploy no Heroku. Para acessá-la e consumi-la clique no botão do Insomnia logo acima e baixe o arquivo json.
Nesta aplicação foram selecionadas certas tecnologias, onde apresentaram maiores diretrizes para que fosse cumprido o objetivo do trabalho. As quais serão descritas a seguir:
O Node.js é um ambiente de tempo de execução JavaScript de código aberto e de plataforma cruzada. O Node.js executa o mecanismo JavaScript V8, o núcleo do Google Chrome, fora do navegador. Isso permite que o Node.js seja muito eficiente. Ele pode ser usado tanto para Front-End como para Back-End, o que facilita, pois evita ter de aprender uma nova linguagem.O Heroku é uma plataforma em nuvem que permite que as empresas construam, entreguem, monitorem e escalem aplicativos. Basicamente um servidor na nuvem, onde empresas e desenvolvedores podem conectar suas aplicações.
O MongoDB é um banco de dados distribuído, embasado em documentos e de propósito geral, desenvolvido para desenvolvedores de aplicativos modernos e para ser utilizado em nuvem. O MongoDB permite a criação de usuários, configurando seus privilégios de acesso, baseado em usuário administrador, usuários com permissões de leitura e gravação de dados e usuários que podem apenas ler os mesmos.
Github é um serviço web que oferece diversas funcionalidades extras aplicadas ao git. Quase todos os projetos/frameworks/bibliotecas sobre desenvolvimento open source estão no github, e o usuário pode acompanhá-los através de novas versões, contribuir informando bugs ou até mesmo enviando código e correções.
Esta etapa irá detalhar todo o funcionamento solene do desenvolvimento da API. Foram divididos em categorias e serão descritos os processos e valores integrados ao projeto.
Esta API-Rest contém um módulo de autenticação de usuário e possui as devidas definições de permissões de acesso aos EndPoints através de um Bearer Token. Foram integradas etapas de validação de criação de usuário, login de usuário, recuperação de senha (onde é enviado um e-mail) e resete de senha.