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.
- 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
- Go 1.16 or higher
- Git
# 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 installgo get github.com/Kafsh-e-Mardane-Varzeshi-Hypo-Test-Team/CT_HW1Built with ❤️ by Kafsh e Mardane Varzeshi Hypo Test Team

