unb-mds / 2023-2-Squad04

Repositório para a disciplina de MDS - Extrator de licitações
https://unb-mds.github.io/2023.2_Licitaiba/
MIT License
5 stars 1 forks source link

Documento de Arquitetura #51

Closed DaniloCTM closed 11 months ago

DaniloCTM commented 11 months ago

Documento de Arquitetura

Descrição

Realizar a documentação da arquitetura e desenvolver os diagramas necessários para o entendimento do projeto, além disso é necessário definir as tecnologias e ferramentas que vão ser utilizadas.

Tarefas

Participantes

@DaniloCTM

DaniloCTM commented 11 months ago

Documento de Arquitetura

A arquitetura do projeto Licitaíba foi pensada para ser uma arquitetura simples de duas camadas, a primeira camada é a de coleta de dados, onde os dados são extraídos e tratados e a segunda camada é a de apresentação dos dados, onde os dados já processados vão ser exibidos para o usuário final.

Camada Descrição Tecnologias
Coleta de dados Nessa etapa vamos realizar a extração e tratamento dos dados de licitação disponíveis no diário oficial da Paraíba utilizando scripts em python. Python, Selenium, PyPDF2
Apresentação dos dados Para realizar a apresentação dos dados coletados vamos desenvolver um site, onde o usuário vai ter acesso aos detalhes de todas as licitações HTML, CSS, JS

Coleta de dados

A coleta de dados consiste em sair de arquivos PDF's dos diários oficiais para as informações das licitações extraídas e formatadas.

  1. O passo inicial vai ser realizar o download de todos os diários oficiais da Paraíba, por se tratar de um número grande arquivos é necessário desenvolver um script para que os downloads sejam feitos de forma automatizada, uma das decisões de arquitetura que deve ser tomada para essa etapa é onde os dados vão ser armazenados. No momento encontramos 3 formas de realizar esse armazenamento, por meio do próprio GitHub, no google drive ou de forma local.
    1. O próximo passo é realizar a conversão do tipo de arquivo de PDF para csv, esse passo é necessário pois é extremamente mais complexo tratar os dados usando python enquanto eles ainda estão em formato de PDF. Para realizar essa conversão vai ser feito um script utilizando a biblioteca PyPDF2, com essa biblioteca é possível converter arquivos em PDF para CSV de forma relativamente simples.
    2. Agora entramos na etapa de tratamento dos dados, para isso vamos utilizar regex para extrair as informações necessárias dos arquivos CSV. Para fazer isso precisamos identificar um padrão entre as licitações, assim conseguimos criar um script em python com a biblioteca regex que vai ser capaz de extrair apenas a informação de interesse.

Apresentação dos dados

Para a apresentação dos dados vamos desenvolver um site com HTML, CSS e JS.

  1. Inicialmente é necessário desenvolver um protótipo do site, pra isso vamos utilizar o software Figma, pois se trata de um software com uma curva de aprendizado bem suave.
  2. Antes de partimos para o desenvolvimento do site devemos selecionar onde ele será hospedado e como vai funcionar o seu back-end. Para esse projeto optamos por hospedar o site no GitHub Pages, assim conseguimos um bom serviço de hospedagem de forma gratuita, no entanto, o GitHub Pages não apresenta suporte para fazermos um Back-end, então todos os dados já devem estar processados e salvos no próprio repositório do GitHub.
  3. Com essas decisões tomadas podemos iniciar o desenvolvimento do site, o desenvolvimento foi divido em duas partes, desenvolvimento das landing pages (páginas estáticas) e desenvolvimento da página de dados (página interativa).
DaniloCTM commented 11 months ago

Diagrama de funcionamento do site

Diagrama_site

Diagrama do processo da coleta de dados

Diagrama_coleta_de_dados