Skip to content

Módulo de armazenamento do Engenho de Busca de Resoluções da UEFS

Notifications You must be signed in to change notification settings

amandassa/DBR-engenho-de-busca

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

✅ Módulo de Armazenamento

API para efetuar o cadastro e armazenamento de resoluções da Universidade Estadual de Feira de Santana.

Índice

📝 Sobre o projeto

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.

👨‍💻 Equipe de Desenvolvimento

Professor

💡 Solução

API (Application Program Interface)

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

Banco de Dados (Database)

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:

Equation
  • 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

Diagrama de Relacionamentos

🛠 Tecnologias

As seguintes tecnologias e ferramentas foram usadas na construção do projeto:

🌐 Usando Solução Online

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

💻 Executando a API localmente

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:

Configuração

$ 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)

Povoando o Banco de Dados

# Em seu banco de dados execute o script Mysql disponível no arquivo:

ResolucoesUefs.sql

Executando a API

$ npm run dev (desenvolvimento)
$ npm start (produção)

About

Módulo de armazenamento do Engenho de Busca de Resoluções da UEFS

Topics

Resources

Stars

Watchers

Forks