API para efetuar o cadastro e armazenamento de resoluções da Universidade Estadual de Feira de Santana.
- Sobre
- Equipe de Desenvolvimento
- Tecnologias
- Solução
- Consumindo API Online
- Executando Aplicação Localmente
O projeto proposto pela disciplina EXA 844 - Programação para redes trata-se projeto de extensão que envolve toda a turma a desenvolver um sistema que cadastre e disponha resoluções da UEFS.
A api foi desenvolvida em Javascript com o framework Express JS, que foi hospedada na plataforma gratuita Render. O link da API está disponível em:
URL: https://dbr-engenho-de-busca.onrender.com
O banco de dados que foi delegado para a nossa equipe foi o banco de dados relacional, dessa forma, decidimos utilizar o banco de dados Mysql, e também foi hospedado em solução gratuita pela plataforma Aiven.
O banco de dados é comporto por 3 tabelas:
- resolucoes
Em Resoluções estão disponíveis as colunas referentes as informações básicas da resolução como ano, numero, reitor, data, data de inserção, texto, link, cabeçalho e email do usuário que cadastrou a resolução.
Além disso, contém uma coluna wd que é calculada para que o módulo do algoritmo de busca utilize para seus calculos:
Cálculo do WD:
- termos
em termos estão disponíveis cada termo que foi tokenizado pela API, cada termo tem seu próprio ID e cada termo é único, ou seja, não é possível ter termos duplicados.
- documentos
Um documento diz respeito a um termo específico presente em uma resolução e qual frequência ele aparece nessa resolução
Diagrama de Relacionamentos do Banco
As seguintes tecnologias e ferramentas foram usadas na construção do projeto:
Para conseguir cadastrar resoluções com com a API online, siga os seguintes passos:
# Faça uma requisição http do tipo POST na rota /cadastrarResolucao
# https://dbr-engenho-de-busca.onrender.com/cadastrarResolucao
# no body da sua requisição deverá ser passado um JSON no seguinte formato:
{
"numero":"001/2016",
"ano":2016,
"data":"08/01/2016",
"reitor":"Nome do reitor",
"cabecalho":"todo texto até a palavra resolve",
"texto":" todo texto da resolução",
"link":"Link de acesso para o pdf da resolução",
"email_usuario":"email do usuario que cadastrou a resolução"
}
**OBS**: Não envie JSON com a sintaxe errada pelo amor de DEUS!!
Respostas HTTP
- Status 201 sucesso - Resolução cadastrada com sucesso
- Status 400 error - Parâmetros do JSON são vazios ou incompleto
- Status 409 error - Resolução já existente no banco de dados
- Status 500 error - Erro interno no servidor
Para executar a API localmente primeiro certifique-se de ter o Nodejs e o Git instalado em sua máquina. Caso esteja tudo ok, siga os seguintes passos:
$ git clone https://github.com/amandassa/DBR-engenho-de-busca.git
# Dentro da pasta onde clonou o projeto execute
$ npm install
# Crie um arquivo chamado .env na raiz do projeto para utilizar as credenciais
# do seu banco de dados
# O arquivo .env deverá as seguintes variáveis de ambiente
DB_HOST=host do banco de dados (ex: localhost)
DB_USER=usuario da database (ex: root)
DB_PORT= porta no qual seu banco de dados se encontra (ex: porta padrão 3306)
DB_PASSWORD= sua senha de usuário
DB_DATABASE= nome da database (ex: resolucoesuefsdb)
$ git clone https://github.com/amandassa/DBR-engenho-de-busca.git
# Dentro da pasta onde clonou o projeto execute
$ npm install
# Crie um arquivo chamado .env na raiz do projeto para utilizar as credenciais
# do seu banco de dados
# O arquivo .env deverá as seguintes variáveis de ambiente
DB_HOST=host do banco de dados (ex: localhost)
DB_USER=usuario da database (ex: root)
DB_PORT= porta no qual seu banco de dados se encontra (ex: porta padrão 3306)
DB_PASSWORD= sua senha de usuário
DB_DATABASE= nome da database (ex: resolucoesuefsdb)