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.2.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.2-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: c14_np1-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 c8f5dc5c965007f1fbb6a0cb66009e725016509f80653d54e745d9784811eb30
MD5 623ce8e768329de382cd133afab556fe
BLAKE2b-256 bfc6c6a24f6acf607952283e2c77154028881346e2be579518fa5565ac2151ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for c14_np1-0.1.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: c14_np1-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f522322e02ed924d94bfb8baa7880f32402f0f4e8c04058535c6d87016333c57
MD5 fb8169fd0f2208d6c7b64ba33d034e86
BLAKE2b-256 e715a599716d8a419f165a82bc8df6f2d5372265ba7cbfe685f43fe06025a75d

See more details on using hashes here.

Provenance

The following attestation bundles were made for c14_np1-0.1.2-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