Skip to main content

No project description provided

Project description

Trabalho individual de GCES 2023-1 - Turma Carla

Os conhecimentos de Gestão de Configuração de Software são fundamentais no ciclo de vida de um produto de software. As técnicas para a gestão vão desde o controle de versão, automação de build e de configuração de ambiente, testes automatizados, isolamento do ambiente até o deploy do sistema. Todo este ciclo nos dias de hoje são integrados em um pipeline de DevOps com as etapas de Integração Contínua (CI) e Deploy Contínuo (CD) implementadas e automatizada.

Para exercitar estes conhecimentos, neste trabalho, você deverá aplicar os conceitos estudados ao longo da disciplina no produto de software contido neste repositório.

Resumo da aplicação

Uma solução, que usa um modelo de classificação de texto (Text Classification Model), para indentificar discursos homofóbicos ou sexistas em tweets.

As bases de dados de discurso de ódio que estão sendo usada são:

A ferramenta utilizada para subir a aplicação web é o Streamlit.

Você pode acessar o ReadMe do repositorio original.

Etapas do Trabalho

O trabalho deve ser elaborado através de etapas. Cada uma das etapas deve ser realizada em um commit separado com o resultado funcional desta etapa.

As etapas de 1 a 3 são relacionadas ao isolamento do ambiente utilizando a ferramenta Docker e Docker Compose. Neste sentido o tutorial abaixo cobre os conceitos fundamentais para o uso destas tecnologias.

Tutorial de Docker

As etapas de 4 e 5 são relacionadas à configuração do pipeline de CI e CD.

Tutorial CI - Gitlab

Containerização do Banco

Nesta aplicação a conteinerização do banco não foi feita pois julguei que não era necessário, uma vez que o modelo já está treinado.

Containerização da aplicação

Não utilizei um orquestrador (Docker Compose) para gerenciar comunicação entre os containers, pois apenas dockerizei a aplicação:

image

Após o dockerfile ser criado, roda-se:

docker build -t detect_hate_speech .

image

Obs: O build está demorando um pouco pois o projeto roda em python 3.7, e os requirements são bastante específicos.

Após ter buildado basta dar o comando run:

docker run -p 8501:8501 detect_hate_speech

image

E a aplicação irá rodar na porta 8501, dessa forma, acessando o http://localhost:8501/ :

image image image

Gestão de dependencias e pacotes python

O arquivo de configuração do poetry é o pyproject.toml:

image

Que publica o pacote pip através de comandos que rodam na pipeline de CI.

image

Documentação automatizada

A documentação gerada de forma automatizada com o sphinx está "rodando" no gitlab pages.

image

Integração Contínua (CI)

O GitLab-CI foi utilizado para garantir o build, os testes, deploy para o https://pypi.org e a geração da documentação. Consiste em 4 stages: lint, tests, build-publish, pages.

image

image image image

Lint

O linter utilizado foi o black:

image

Tests

O pytest foi utilizado para rodar os testes (não haviam testes no repo original, então criei um teste simples para adicionar a pipeline).

Build-publish

Build-publish docker image

Essa etapa sobe a imagem do docker criada para o dockerhub.

image

Build-publish package pypi

Nesse stage ocorre o build e a publicação no pypi do pacote gerado pelo poetry.

image

Pages documentation - Sphinx

A ultima etapa consiste em utilizar o sphinx para gerar a documentação do projeto, e subi-la no gitlab pages.

image

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

detect_hate_speech-0.1.8.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

detect_hate_speech-0.1.8-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file detect_hate_speech-0.1.8.tar.gz.

File metadata

  • Download URL: detect_hate_speech-0.1.8.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.7.17 Linux/5.4.109+

File hashes

Hashes for detect_hate_speech-0.1.8.tar.gz
Algorithm Hash digest
SHA256 eaf5c50244a7e1ffcf9f72313f15a80aea9b55a6d6202bda7818d34d9d4a0ac4
MD5 bcf75e78d47d3c15f494c32c8fbce3dc
BLAKE2b-256 83e6c5370a8b351afc63531f3ddb832ed6b41b0ec03173bb0d60832dd44f9a64

See more details on using hashes here.

File details

Details for the file detect_hate_speech-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: detect_hate_speech-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.7.17 Linux/5.4.109+

File hashes

Hashes for detect_hate_speech-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 11e63440c1ee0e545c12973d9d17fe8550b532849295d1436cf54f53fb0e2ded
MD5 e251407f40580b89f8d68b152a107691
BLAKE2b-256 64c4fd828fc572b4eaf34089854e0eb01b4bf8869a2455dde13062cf4393dd06

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page