Metadata-Version: 2.1
Name: 170051277-trab-final-gces
Version: 0.4.0
Summary: Pacote utilizado para o deploy do trabalho final da disciplina Gerência de Configuração e Evolução de Software (GCES).
Home-page: https://github.com/ngm1450/trabalho_individual_gces_170051277
License: MIT
Keywords: unb,fga,gces
Author: Nicolas Mantzos
Author-email: georgeos.nicolas83@gmail.com
Requires-Python: >=3.8,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: Jinja2 (>=3.1.2,<4.0.0)
Requires-Dist: MarkupSafe (>=2.1.1,<3.0.0)
Requires-Dist: Pillow (>=9.4.0,<10.0.0)
Requires-Dist: PyYAML (>=6.0,<7.0)
Requires-Dist: altair (>=4.2.0,<5.0.0)
Requires-Dist: attrs (>=22.2.0,<23.0.0)
Requires-Dist: bpemb (>=0.3.4,<0.4.0)
Requires-Dist: certifi (>=2022.12.7,<2023.0.0)
Requires-Dist: charset-normalizer (>=2.1.0,<3.0.0)
Requires-Dist: contourpy (>=1.0.6,<2.0.0)
Requires-Dist: coverage (>=7.0.2,<8.0.0)
Requires-Dist: cycler (>=0.11.0,<0.12.0)
Requires-Dist: entrypoints (>=0.4,<0.5)
Requires-Dist: exceptiongroup (>=1.1.0,<2.0.0)
Requires-Dist: fonttools (>=4.38.0,<5.0.0)
Requires-Dist: gensim (>=3.8.3,<4.0.0)
Requires-Dist: idna (>=3.4,<4.0)
Requires-Dist: importlib-resources (>=5.10.2,<6.0.0)
Requires-Dist: iniconfig (>=1.1.1,<2.0.0)
Requires-Dist: joblib (>=1.2.0,<2.0.0)
Requires-Dist: jsonschema (>=4.17.3,<5.0.0)
Requires-Dist: kiwisolver (>=1.4.4,<2.0.0)
Requires-Dist: matplotlib (>=3.6.2,<4.0.0)
Requires-Dist: numpy (>=1.24.1,<2.0.0)
Requires-Dist: packaging (>=22.0,<23.0)
Requires-Dist: pandas (>=1.5.2,<2.0.0)
Requires-Dist: pkgutil-resolve-name (>=1.3.10,<2.0.0)
Requires-Dist: pluggy (>=1.0.0,<2.0.0)
Requires-Dist: pyparsing (>=3.0.9,<4.0.0)
Requires-Dist: pyrsistent (>=0.19.3,<0.20.0)
Requires-Dist: pytest (>=7.2.0,<8.0.0)
Requires-Dist: pytest-cov (>=4.0.0,<5.0.0)
Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
Requires-Dist: pytz (>=2022.7,<2023.0)
Requires-Dist: requests (>=2.28.1,<3.0.0)
Requires-Dist: scikit-learn (>=1.2.0,<2.0.0)
Requires-Dist: scipy (>=1.9.3,<2.0.0)
Requires-Dist: sentencepiece (>=0.1.97,<0.2.0)
Requires-Dist: six (>=1.16.0,<2.0.0)
Requires-Dist: smart-open (>=6.3.0,<7.0.0)
Requires-Dist: threadpoolctl (>=3.1.0,<4.0.0)
Requires-Dist: tomli (>=2.0.1,<3.0.0)
Requires-Dist: toolz (>=0.12.0,<0.13.0)
Requires-Dist: tqdm (>=4.64.1,<5.0.0)
Requires-Dist: twine (>=4.0.2,<5.0.0)
Requires-Dist: urllib3 (>=1.26.13,<2.0.0)
Requires-Dist: whatlies (>=0.7.0,<0.8.0)
Requires-Dist: zipp (>=3.11.0,<4.0.0)
Project-URL: Repository, https://github.com/ngm1450/trabalho_individual_gces_170051277
Description-Content-Type: text/markdown

# Resumo da aplicação 

 A biblioteca desenvolvida auxilia desenvolvedores a explorar os dados com funções essenciais para a identificação de outliers e anomalias e uma interface que auxilia a visualizar as informações de acordo com o arquivo de configuração.

 A biblioteca recebe um arquivo yaml com as configurações de cada etapa do pipeline de dados, e do endereço do banco de dados.
 Após a execução do banco de dados, o banco de dados de dados é atualizado com os resultados da análise e os resultados podem ser visualizados por meio de dashboards no metabase.

## Conteinerização do Banco

O SGBD PostgreSQL foi dockerizado como um serviço de nome ``db`` utilizando o arquivo ```docker-compose.yml```. 

Para permitir o acesso externo via IDE e o armazenamento dos arquivos, a porta 3000 foi exposta e um volume que mapeia a pasta ```dbdata``` padrão 
para ```gces_170051277/postgresql/data:``` foi criado. O mapemanento objetivou evitar conflitos com outos contêineres e, para tal, utilizou a matrícula do aluno como espécie de "hash".

## Conteinerização da aplicação

A aplicação em python foi dockerizada utilizando o arquivo ```Dockerfile```.

Dentro do contêiner o projeto está armazenado na pasta ```py_gces``` e, para trabalhar com ela 
de maneira apropriada, foi necessário incluí-la na variável de ambiente ```PYTHONPATH```.

Após isso, todas as pastas e pacotes necessários foram copiados para dentro do contêiner e, em seguida, o gerenciador de dependências
"poetry" e as dependências do projeto foram instalados.

Por fim, visando testar se não há problemas no arquivo, a compilação foi executada.

## Gestão de dependências e pacotes python

O poetry é a ferramenta utilizada para manejar as dependências do projeto e a sua configuração, junto com a lista de dependências, consta no arquivo ```pyptoject.toml```.

##  Integração Contínua (CI)

Aqui, o objetivo é validar o código enviado para as branchs do repositório, realizando testes e o processo de build.
Ambas as operações constam nos passos "Installation (Poetry/Dependencies)" e "Tests (Pytest)" presentes no arquivo ```/.github/build.yml```

##  Entrega Contínua (CI)

Uma vez que o teste e a compilação do código tenham sido bem-sucedidos, o envio é feito para o PyPI através do passo "Build and publish to PyPI",
as informações presentes no ```pyptoject.toml``` (nome do pacote, responsável, repositório etc) são dispostas e por fim há a publicação do pacote.

