FalsoMoralista / Projeto-de-extensao-resolucoes

Repositorio para o projeto de extensão da disciplina EXA 844 UEFS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Projeto de extensão

Repositório para o projeto de extensão da disciplina EXA 844 Programação para redes da Universidade Estadual de Feira de Santana (UEFS)

Resumo do projeto

O projeto consiste no desenvolvimento de um engenho de busca para resoluções da UEFS, o sistema deve permite o cadastro de resoluções, busca de resoluções por ano , tipo, texto e etc.

Sobre o projeto

O projeto é dividido em quatro módulos individuais são eles: gerenciamento de usuários ,cadastro de resoluções ,armazenamento de dados e busca, módulo de extração de dados, a fim de que os módulos fossem desenvolvidos independentes um dos outros foi estabelecido que a comunicação entre módulos seria feita através de APIs construídas junto aos módulos.

Links de referência


Módulos

Diagrama do sistema

diagrama de blocos do sistema

Gerenciamento de usuários

O módulo de gerenciamento de usuários é responsável pelo cadastro e controle de usuários, existem dois tipos de usuários: administrador e usuário, Administradores tem a função do controle de usuários no sistema enquanto usuários podem cadastrar resoluções e alterar seus dados cadastrais.

Permissões do Administrador:

  • Cadastrar/Remover usuários
  • Alterar senha dos usuários
  • Listar usuários

Permissões do usuário:

  • Cadastrar resoluções (permissão)
  • Alterar email e senha

Funcionalidades do sistema:

  • Gerar Token de autenticação do usuário
  • Verificar login do usuário
  • Informação de cadastro de usuário: nome , email e senha
  • Atualizar log de ações no sistema

Telas do sistema

O módulo de gerenciamento de usúarios deve implementar 4 telas

  1. Login
  2. Cadastro de usuario
  3. Dados do usuario
  4. Log do sistema

Extração de dados

O módulo de extração de dados é responsável pela extração dos dados das resoluções, o sistema acessa as resoluções em formato pdf faz a extração de dados e armazena no esquema estruturado definido para o projeto, algumas resoluções vão ser pdfs de documentos digitalizados sendo necessário utilizar Optical Character Recognition (OCR) para extrair os dados, o sistema deve gerar um json( no formato definido pelo projeto) para atender as requisições feitas na API construída.

Funcionalidades do sistema:

  • Recebe uma requisição do cadastro de resoluções que possui o link para um pdf baixa o pdf,faz a extração dos dados, formato do json recebido é esquema_requisicao_para_ocr.
  • Função definida: recebe como parâmetro um arquivo pdf e retorna um json de resposta com os dados do pdf.
  • O formato do json de resposta segue o padrão definido no arquivo: esquema_dados_modulo_extracao na pasta modelos.

Na imagem abaixo é o mostrado recorte de uma resolução e são destacados os dados que devem ser extraídos dos documentos com exceção do reitor que pode ser encontrado ao final do documento.

imagem de uma Resolucao em fomrato pdf

Cadastro

O módulo de cadastro permite que os usuários com permissão possam cadastrar novas resoluções em formato zip informando ano e tipo da resolução no sistema, para ter acesso ao cadastro o usuário vai ter de realizar o login e autenticar sua sessão, as resoluções cadastradas devem estar disponíveis para acesso em formato pdf através de um link, ao cadastrar novas resoluções o sistema envia os links para o módulo OCR recebe os dados extraidos e envia para serem armazenados no banco de dados.

Funcionalidades do sistema:

  • Realizar login do usuário, faz uma requisição ao sistema de gerenciamento de usuário e recebe como resposta um token informando a sessão autenticada e as permissões do usuário.
  • Cadastro de resoluções em arquivo compactado (formato zip) informando o ano e tipo(CONSEP ou CONSU).
  • Extrair o arquivo o zip e separar as resoluções por tipo e ano
  • Ao cadastrar um zip de resolução o sistema de cadastro deve enviar uma mensagem para o gerenciamento de usuario informando o usúario e timestamp da aço
  • Disponibilizar acesso as resoluções em formato pdf com link de acesso(sugestão google drive)
  • Enviar requisições ao módulo OCR passando o link para pdf, utilizar json no formato esquema_requisicao_para_ocr
  • Enviar json de resoluções extraidas para o módulo de armazenamento cadastrar a nova resolução, usar json no formato esquema_store_banco

Telas do sistema

O módulo de cadasto deve implementar 3 telas

  1. Login
  2. Cadastro de resoluçao
  3. Tela de busca

Armazenamento

Implementa o banco de dados do sistema onde os dados são indexados e podem ser recuperados nas consultas ao banco, o esquema de dados e tipo de banco: relacional, não relacional e outros fica a cargo da equipe.

Funcionalidades:

  • Recebe uma requisição json esquema_store_banco. e armazena no banco de dados
  • Resoluções já existentes no banco não devem ser cadastradas.
  • O sistema deve indexar os dados.
  • Deve permitir consulta dos dados, vai receber um json com dados chave para consulta e realizar a query correspondente.
  • json deve ter os seguintes campos: keywords, from(data de início), to (data final)
  • A requisição com os parametros de busca segue o formato esquema_parametros_busca
  • Deve retornar como resposta para uma requisição recebida um json com dados no formato esquema_resposta_busca_bd

exemplo de uma requisição de busca para o sistema de armazenamento, ao receber uma requisição com o json no modelo abaixo:

    {
        "palavras_chave":"engenharia de computação graduação CONSEP",
        "data_inicio":"",
        "data_final":"2018"
    }

Usando o algoritimo de busca implementado o sistema de armazenamento deve devolver um json com as resoluções que correspondem a busca, exemplo de resposta abaixo:

    {
        "ano":"2017",
        "orgao":"CONSEP",
        "descricao":"alteração do curriculo do curso ...... reforma",
        "numero":"004/2017",
        "link":"https://salvePdfs.com.br/store/cadastro-modulo/pdf1.pdf"
    }

About

Repositorio para o projeto de extensão da disciplina EXA 844 UEFS