Skip to main content

Projeto da matéria de Engenharia de Software

Project description

Downloader Multithread com GUI

Projeto desenvolvido para a disciplina de Engenharia de Software. A aplicação foi construída em Python com interface em Tkinter e realiza downloads em múltiplas threads, dividindo o arquivo em partes para melhorar o desempenho e montar o resultado final ao término da transferência.

Integrantes

  • Guilherme
  • Luan Robert

Funcionalidades

  • Download de arquivos em múltiplas threads
  • Interface gráfica com Tkinter
  • Montagem automática do arquivo final
  • Geração de logs auxiliares do processo de download

Estrutura do Projeto

Requisitos

Instalação das dependências:

pip install -r requirements.txt

Como Executar

Para iniciar a aplicação:

python app.py

Como Rodar os Testes

Execução dos testes unitários:

pytest

Execução com geração de relatório JUnit:

pytest --junitxml=report.xml

Cobertura de Testes

O projeto utiliza pytest-cov para gerar relatório de cobertura em HTML.

pytest --cov=downloader --cov=gui --cov=app --cov-report=html

O relatório gerado fica na pasta htmlcov/.

Pipeline CI/CD

O projeto possui um pipeline configurado no GitHub Actions com as seguintes etapas:

  1. tests Executa os testes unitários e salva o relatório como artifact.
  2. build Gera o pacote distribuível da aplicação.
  3. coverage Executa os testes com cobertura e armazena o relatório HTML como artifact.
  4. pypi-publish Etapa de deploy/publicação do pacote para o PyPI.
  5. notification Executa um script externo para envio de notificação por e-mail ao final do pipeline.

Artifacts Gerados

  • test-report: relatório dos testes unitários
  • release-dists: arquivos gerados em dist/
  • coverage-report: relatório HTML de cobertura

Deploy

O deploy adotado neste projeto é a publicação do pacote Python no PyPI, caracterizando deploy de artefato de build. Essa etapa ocorre no workflow do GitHub Actions após as validações do pipeline.

Testes Implementados

O projeto possui mais de 20 cenários de testes unitários cobrindo:

  • fluxo principal de segmentação e montagem de arquivos
  • formatação e conversão de taxas e tamanhos
  • casos de erro e entradas inválidas
  • cenários de borda, como valores vazios, zero e ordenação de partes

Links de Teste

Alguns arquivos públicos que podem ser usados para validar a aplicação:

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

c14_np1-0.1.1.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

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

c14_np1-0.1.1-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file c14_np1-0.1.1.tar.gz.

File metadata

  • Download URL: c14_np1-0.1.1.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for c14_np1-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7382436070a8512d6ac5fd34bcc52fed0c6bc3ebf7b12dcc09077edd3395ae0d
MD5 19f956e43ce340b9c15fb57038e9b80f
BLAKE2b-256 f81f334a6bb8eae13a7a8ce0e48813fc53f8f9cc8108e1c6fcb9f214770c793b

See more details on using hashes here.

Provenance

The following attestation bundles were made for c14_np1-0.1.1.tar.gz:

Publisher: cicd.yml on guilhermecmr/C14-NP1

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file c14_np1-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: c14_np1-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for c14_np1-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 de699871e562c1394a57245c36d3b92a91e9a66045e474e9991abe0ac84415e1
MD5 1b3846235ccbec1bc445eb95ab1dc8e8
BLAKE2b-256 38dfd83ac5f443ec454567be1e5f7b536683cdeab32b42e13ed7b157f7396406

See more details on using hashes here.

Provenance

The following attestation bundles were made for c14_np1-0.1.1-py3-none-any.whl:

Publisher: cicd.yml on guilhermecmr/C14-NP1

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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