Skip to content

Arnob90/DashLoad

Repository files navigation

[Dashload] - Download Manager

⚠️ Status: Pre-Alpha / In-Development ⚠️

This project is currently in a very early stage of development (pre-alpha). Expect bugs, incomplete features, and frequent breaking changes. It is primarily intended for developers interested in contributing or experimenting.

A modern, multi-segmented download manager built with React (Electron) for the frontend and Python for the backend.

✨ Features

  • Multi-segmented Downloads: Utilizes multiple connections for potentially faster downloads (powered by pypdl).
  • Cross-Platform: Built with Electron and Python, aiming for compatibility across major OSes (Windows, macOS, Linux).
  • Modern UI: React-based interface for a clean user experience.
  • Open Source: This project is open source and available on GitHub for anyone to contribute.

💻 Tech Stack

  • Frontend: React, Electron, Tailwind, light SCSS/CSS for advanced features
  • Backend: Python 3.13.3
  • Core Download Logic: pypdl library
  • Inter-Process Communication (IPC): Electron IPC

🚀 Getting Started (Development)

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

Installation & Setup

  1. Clone the repository:

    git clone https://github.com/Arnob90/DashLoad.git
    cd DashLoad
  2. Set up the Python Backend:

    • Navigate to the backend directory (./src/backend/)

    • Activate the virtual environment

      source ./venv/bin/activate.sh
    • Install Python dependencies:

      pip install -r requirements.txt
    • Turn it into editable install

     pip install -e .
  3. Set up the React Frontend:

    • Install Node.js dependencies:

      npm install

Running the Application

  • Make sure you are in the root directory.

  • Give the backend run script permissions

    chmod +x ./src/backend/start-backend.fish
  • Run the development script:

    # Using npm
    npm run start
  • To only start the backend

npm run start:backend
  • This should compile the React code and launch the Electron application.

Contributing

  • Abide by common sense(don't try to push malware lmao)
  • Follow conventions in source
  • Try to type as much as possible. Prefer typescript over JS and typed python. No duck typing please unless you absolutely have to.
  • Keep PRs focused and readable.
  • Please use the issue tracker to report bugs and feature requests. (Testing is very appreciated)
  • Feel free to fork if you feel like your PR will do much good.
  • Please be nice.

Roadmap(in order)

  • Core download logic
  • Multi-segmented downloads
  • Add tests
  • Serialization and deserialization of downloads
  • Torrenting
  • Bug free and stable
  • Performance optimization(maybe move away from electron/python)
  • Extensibility

About

A modern and FOSS download manager

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors