Skip to content

Kafsh-e-Mardane-Varzeshi-Hypo-Test-Team/CT_HW1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

189 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CT_HW1

Computer Technology Course - Homework 1

A powerful concurrent download manager written in Go that supports multi-part downloads, bandwidth throttling, queue management, and state persistence. The user interface is implemented using BubbleTea library.

The whole project was dissected into three parts: handling downloading, handling app state, and implementing tui, which were respectively implemented by Parisa Sadat Mousavi, Mohammad Barekatain, and Mehdi Taheri.

GoDownloadManager GoDownloadManager

Features

  • Parallel Downloads: Splits files into multiple parts for faster concurrent downloading
  • Pause & Resume: Pause downloads and resume them later from where they left off
  • Download Queue: Organize downloads in queues with prioritization
  • Bandwidth Control: Limit download speeds to prevent network saturation
  • Download Progress: Real-time monitoring of download progress and speed
  • Persistence: Save download state and configuration across sessions
  • Error Recovery: Automatically handles connection issues and retries
  • File Integrity: Ensures downloaded files are complete and correctly merged

Installation

Prerequisites

  • Go 1.16 or higher
  • Git

From Source

# Clone the repository
git clone https://github.com/Kafsh-e-Mardane-Varzeshi-Hypo-Test-Team/CT_HW1.git
cd godownloadmanager

# Build the application
go build -o gdm

# Install globally (optional)
go install

Using Go Modules

go get github.com/Kafsh-e-Mardane-Varzeshi-Hypo-Test-Team/CT_HW1

Built with ❤️ by Kafsh e Mardane Varzeshi Hypo Test Team

About

Internet Download Manager in Terminal

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages