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.0.tar.gz (11.6 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.0-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: c14_np1-0.1.0.tar.gz
  • Upload date:
  • Size: 11.6 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.0.tar.gz
Algorithm Hash digest
SHA256 2388ade39afd93ab46100bc155d3a6311f7303c3ba366a57ef3f6a94e5927b81
MD5 c1fce2231a56ed20eb49ec973608e21f
BLAKE2b-256 52f4dad907dc41df0e1b9d32983a3e105452f648d926593c0992b6e1a1bafa98

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: c14_np1-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 922fb76ad443413153abf2d5dff0fce9dcb4bba1669c205b60c0e2fbccb5d976
MD5 3ce90cc01db176f60bd76c27e8e12f37
BLAKE2b-256 da9ac1bf7a8465486b87b4c89f0ff9713deaf621882de11c7c281f21be855f10

See more details on using hashes here.

Provenance

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