Drifty

0

Drifty is an open-source interactive File Downloader system built with java. It is available in both CLI and GUI mode.

Productivity

java
hacktoberfest
application
open-source-project

Drifty Banner with App Icon

Release Version License Total No. Of Downloads of Drifty

Build Workflow Status GitHub Pages Deployment Status

GitHub Stargazers for Drifty Follow us on Twitter Discord Server

About 🔥

  • Drifty is an Open-Source Interactive File downloader system developed in Java.
  • It offers both Command-line Interface (CLI) and Graphical User Interface (GUI) modes, providing flexibility and ease of use for various user preferences.

Demo 🎥

See the video below to know how to use the application. For any help, you can open an issue.

For Batch Downloading via Drifty CLI, the path to a YAML file has to be provided to it. It should have the following structure :

links: ["", ""] # [REQUIRED] - Links to the files to be downloaded
# Below parameters are OPTIONAL
fileNames: [""] # Will be auto-retrieved if not provided
# If the directory is not provided, the files will be downloaded in the default downloads folder.
directory: [""] # Use 'directory' when all the files to be downloaded in the same folder.
directories: [""] # Use 'directories' when the download folder is different for each of the files

Drifty GUI

https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/aa7ea548-f312-4345-a053-d3ee13e67c8e

Drifty CLI

https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/8a32ca07-1922-4c21-895d-44164bec9d76

Tech Stack 🛠️

The Application Drifty is built using the following technologies :

  • Java - A programming language for building machine-independent applications.

The Website of Drifty is built using the following technologies :

  • Next.js - A JavaScript framework for building server-rendered React applications.
  • Tailwind CSS - A utility-first CSS framework.

Join the Drifty Testing Program 🚀

Drifty is released in 4 phases, namely Alpha, Beta, Release Candidate, and Stable. If you want to test the unstable (Alpha or Beta) or the mostly stable versions (Release Candidate), you can download the executables for the respective phases from the Drifty website or try the Docker images for the respective phases.
If you find any issues during the testing period, please open an issue or join our Discord Server to share your feedback.

Quickstart 🚀🚀

For Users :

Using Drifty Application executable 📦

  1. Visit the Drifty website

    Homepage of Drifty Website

  2. Click on Download

    Download Button in Drifty Website pointed out

  3. Choose the Application Type from the dropdown menu (Default option is GUI). To download Drifty CLI, select CLI and to download Drifty GUI, select GUI. Then, click on the Download Now button based on your Operating System (Windows, Linux, macOS). For Windows user, there is an MSI file available for Drifty GUI. You can click on the Prefer the msi? text to download the latest MSI file 🎉. If you want to test the unstable (Alpha or Beta) or the mostly stable versions (Release Candidate), you can click on the download button of the respective phase.

    Download Webpage of Drifty

  4. Navigate to the Downloads folder and execute the downloaded file. If you are installing Drifty GUI, complete the steps in the macOS or Windows MSI installer wizard that appears on your screen.

  5. Check out the Demo section for examples of how to use the application.

  6. If you like the project, please leave a star on GitHub.

  7. For any issues or feature requests, you can join our Discord Server and share your feedback.

Using Drifty Application via Docker 🐋

[!TIP]

  • To download files to a specific local directory, you need to mount that directory as a volume for Drifty. For example, if you want to download the file to your home/username/Downloads directory, then, you need to use the volume flag -v /home/username/Downloads:/root/Downloads with the docker command.
  • You can also mount -v /home/username/.drifty:/root/.drifty to enable the docker container to store Drifty's data in your local directory, which will make Drifty initialize much faster 🚀⚡.
  • For Linux, we recommend using Docker Engine directly instead of running images with Docker Desktop. To do this, add sudo before the docker commands.
  • If you want to try unstable (Alpha or Beta) [Alpha releases are not available as of now] or the mostly stable versions (Release Candidate), you need to use the respective docker image tags. For example, to use the Beta version of Drifty, you need to use the docker image tag beta like ghcr.io/saptarshisarkar12/drifty-cli:beta or ghcr.io/saptarshisarkar12/drifty-gui:beta.

[!IMPORTANT]

  • To run Drifty GUI docker image, you need to do the following 👇
    • For Linux and Windows, please run xhost +local:docker before running the GUI docker image.
    • For macOS, please follow these instructions.
  1. Pull the Docker image for Drifty using the below command -
    For Drifty CLI,
    docker pull ghcr.io/saptarshisarkar12/drifty-cli:master
    
    For Drifty GUI,
    docker pull ghcr.io/saptarshisarkar12/drifty-gui:master
    
  2. Run the docker image using the below command -
    For Drifty CLI,
    docker run ghcr.io/saptarshisarkar12/drifty-cli:master
    
    For Drifty GUI,
    docker run -e DISPLAY=$DISPLAY --net=host -v /tmp/.X11-unix:/tmp/.X11-unix ghcr.io/saptarshisarkar12/drifty-gui:master
    
  3. Drifty will open, and you can now use it 🎉!

For Contributors :

  1. Go to the project link on GitHub, fork this repository and clone your fork into your local directory by running this command in your terminal.
    git clone git@github.com:SaptarshiSarkar12/Drifty.git
    
    Clone Drifty

  2. Open an issue ❕ describing the changes you want to make.

  3. Make the changes in an IDE (preferably Intellij Idea) and open a Pull Request. Ensure that you have linked the issue to the Pull Request.
  4. The Pull Request will be reviewed by the maintainers and merged if approved. ✔

  5. Leave a star ⭐ on GitHub if you liked the project.
  6. You may join our Discord Server to discuss on the changes that you want to bring.

Using Docker 🐋 for Development 🛠️

[!IMPORTANT]
For Linux and Windows, please run xhost +local:docker before running the GUI docker image.
For macOS, please follow these instructions to run Drifty GUI docker image.

  1. To start Drifty GUI and Drifty CLI with your modified source code, run docker compose run gui and docker compose run cli respectively.
  2. The Drifty app will show up on the screen, and you can test it 🎉!

Safety warning ⚠️ while Downloading ⬇️

image

It is because Microsoft Defender could not verify it is safe as it is not commonly downloaded. Feel free to proceed with the following steps:

  • Click on the three dots.

  • Click on keep.

    image

  • Click Show More.

  • Click Keep anyway.

    image

  • Now it is downloaded, you can proceed.🎉

Report the file as safe ✔️

You can also provide your feedback to Microsoft Defender by reporting it to be Safe, by following the below steps:

  • Click on three dots.

  • Click on Report this file as safe instead of clicking on Keep.

    image

  • It will take you to Report a download page. You can provide your feedback there.😄

Safety warning ⚠️ while Installing

  • For Windows, click on More Info and then Run Anyway as present on the screen below:
    Windows Defender - More Info screenWindows Defender - Run Anyway screen
  • For macOS, click on OK and run sudo spctl --master-disable in your terminal to allow running unsigned apps. Try running Drifty again.
    gatekeeper

Contributing to the project 🤝

  • We welcome 🤝 your contributions to this Open-Source project.
  • Please check the Contributing Guidelines and the Roadmaps for ways to get involved.
  • You can also open an issue to report a bug 🐛, request a feature 💡, or suggest an improvement 📈.
  • Please follow this project's Code Of Conduct to maintain a respectful and inclusive environment.
  • Please note that this project uses Semantic Versioning for its releases.
  • Join our Discord Server to stay updated on this project and chat 💬 with the maintainer and the other contributors.

Stats 📊

Repo analysis

Support 🙏

Please leave a star ⭐ on this project to support us.

Thanks to all the contributors ❤️

Contributors' gallery at a glance