From f4954b2ffe2f67e6aacc127cb7113772de2c3d9b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 10:20:25 +0530 Subject: [PATCH] chore(ci): bump super-linter/super-linter from 6 to 7 in /.github/workflows (#602) * chore(ci): bump super-linter/super-linter in /.github/workflows Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter) from 6 to 7. - [Release notes](https://github.com/super-linter/super-linter/releases) - [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md) - [Commits](https://github.com/super-linter/super-linter/compare/v6...v7) --- updated-dependencies: - dependency-name: super-linter/super-linter dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * feat(CI): Added support for linting and fixing JavaScript, YAML, JSON, Markdown and CSS code * chore: Added `.prettierignore` file * fix: Moved all ignored folders to .prettierignore file * fix(CI): Fixed formatter permission issue * fix(CI): Fixed formatter permission issue * fix(CI): Fixed formatter permission issue * style: format codebase --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Saptarshi Sarkar Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../ISSUE_TEMPLATE/Bug-for-application.yaml | 2 +- .github/ISSUE_TEMPLATE/Bug-for-website.yaml | 2 +- .github/ISSUE_TEMPLATE/documentation.yaml | 2 +- .../feature-request-application.yaml | 2 +- .../feature-request-website.yaml | 2 +- .github/ISSUE_TEMPLATE/other.yml | 2 +- .github/dependabot.yml | 62 +-- .github/labeler.yml | 45 +- .github/linters/.jscpd.json | 2 +- .github/pull_request_template.md | 5 + .github/release.yml | 8 +- .github/workflows/formatter.yml | 15 +- .github/workflows/linter.yml | 4 +- .prettierignore | 5 + CODE_OF_CONDUCT.md | 22 +- CONTRIBUTING.md | 7 +- Docker/macOS Docker Build Instructions.md | 42 +- GUI/src/main/resources/CSS/Button.css | 27 +- GUI/src/main/resources/CSS/CheckBox.css | 17 +- GUI/src/main/resources/CSS/ContextMenu.css | 10 +- GUI/src/main/resources/CSS/DarkTheme.css | 46 +- GUI/src/main/resources/CSS/Label.css | 20 +- GUI/src/main/resources/CSS/LightTheme.css | 8 +- GUI/src/main/resources/CSS/ListView.css | 43 +- GUI/src/main/resources/CSS/Menu.css | 44 +- GUI/src/main/resources/CSS/ProgressBar.css | 8 +- GUI/src/main/resources/CSS/ScrollPane.css | 4 +- GUI/src/main/resources/CSS/TextField.css | 10 +- GUI/src/main/resources/CSS/VBox.css | 13 +- README.md | 116 ++--- Website/app/Contribute.js | 152 ++++-- Website/app/Demo.js | 169 ++++--- Website/app/Features.js | 4 +- Website/app/Footer.js | 225 ++++++--- Website/app/Releases.js | 439 +++++++++--------- Website/app/about/page.js | 125 +++-- Website/app/api/version/dev/route.js | 23 +- Website/app/api/version/latest/route.js | 21 +- Website/app/docs/Contributing.md | 30 +- .../docs/Development/Building-Executables.md | 6 +- Website/app/docs/Development/Quickstart.md | 4 +- .../macOS-docker-build-instructions.md | 14 +- Website/app/docs/Faq.md | 33 +- Website/app/docs/Overview.md | 3 +- Website/app/docs/Quickstart.md | 8 +- Website/app/docs/Usage/drifty-cli/Overview.md | 8 +- .../Usage/drifty-cli/downloading-files.md | 12 +- .../Usage/drifty-gui/downloading-files.md | 6 +- Website/app/download/page.js | 4 +- Website/app/globals.css | 112 ++--- Website/app/layout.js | 14 +- Website/app/page.js | 2 +- Website/next.config.js | 46 +- Website/postcss.config.js | 2 +- Website/tailwind.config.js | 32 +- docker-compose.yaml | 7 +- version.json | 4 +- 57 files changed, 1236 insertions(+), 864 deletions(-) create mode 100644 .prettierignore diff --git a/.github/ISSUE_TEMPLATE/Bug-for-application.yaml b/.github/ISSUE_TEMPLATE/Bug-for-application.yaml index 363abbf94..a28ac50c2 100644 --- a/.github/ISSUE_TEMPLATE/Bug-for-application.yaml +++ b/.github/ISSUE_TEMPLATE/Bug-for-application.yaml @@ -71,4 +71,4 @@ body: - type: markdown attributes: value: | - You can also join our [Discord community](https://discord.gg/DeT4jXPfkG) for any help or support. \ No newline at end of file + You can also join our [Discord community](https://discord.gg/DeT4jXPfkG) for any help or support. diff --git a/.github/ISSUE_TEMPLATE/Bug-for-website.yaml b/.github/ISSUE_TEMPLATE/Bug-for-website.yaml index 8d0402622..07730110c 100644 --- a/.github/ISSUE_TEMPLATE/Bug-for-website.yaml +++ b/.github/ISSUE_TEMPLATE/Bug-for-website.yaml @@ -84,4 +84,4 @@ body: - type: markdown attributes: value: | - You can also join our [Discord community](https://discord.gg/DeT4jXPfkG) for any help or support. \ No newline at end of file + You can also join our [Discord community](https://discord.gg/DeT4jXPfkG) for any help or support. diff --git a/.github/ISSUE_TEMPLATE/documentation.yaml b/.github/ISSUE_TEMPLATE/documentation.yaml index 7a295b31e..27787a06a 100644 --- a/.github/ISSUE_TEMPLATE/documentation.yaml +++ b/.github/ISSUE_TEMPLATE/documentation.yaml @@ -37,4 +37,4 @@ body: - type: markdown attributes: value: | - You can also join our [Discord community](https://discord.gg/DeT4jXPfkG) for any help or support. \ No newline at end of file + You can also join our [Discord community](https://discord.gg/DeT4jXPfkG) for any help or support. diff --git a/.github/ISSUE_TEMPLATE/feature-request-application.yaml b/.github/ISSUE_TEMPLATE/feature-request-application.yaml index 2eb41ab4f..f20949ba0 100644 --- a/.github/ISSUE_TEMPLATE/feature-request-application.yaml +++ b/.github/ISSUE_TEMPLATE/feature-request-application.yaml @@ -46,4 +46,4 @@ body: - type: markdown attributes: value: | - You can also join our [Discord community](https://discord.gg/DeT4jXPfkG) for any help or support. \ No newline at end of file + You can also join our [Discord community](https://discord.gg/DeT4jXPfkG) for any help or support. diff --git a/.github/ISSUE_TEMPLATE/feature-request-website.yaml b/.github/ISSUE_TEMPLATE/feature-request-website.yaml index 806dfe11b..99affbdd8 100644 --- a/.github/ISSUE_TEMPLATE/feature-request-website.yaml +++ b/.github/ISSUE_TEMPLATE/feature-request-website.yaml @@ -46,4 +46,4 @@ body: - type: markdown attributes: value: | - You can also join our [Discord community](https://discord.gg/DeT4jXPfkG) for any help or support. \ No newline at end of file + You can also join our [Discord community](https://discord.gg/DeT4jXPfkG) for any help or support. diff --git a/.github/ISSUE_TEMPLATE/other.yml b/.github/ISSUE_TEMPLATE/other.yml index e32283157..7dc9c0595 100644 --- a/.github/ISSUE_TEMPLATE/other.yml +++ b/.github/ISSUE_TEMPLATE/other.yml @@ -31,4 +31,4 @@ body: - type: markdown attributes: value: | - You can also join our [Discord community](https://discord.gg/DeT4jXPfkG) for any help or support. \ No newline at end of file + You can also join our [Discord community](https://discord.gg/DeT4jXPfkG) for any help or support. diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 836fb7877..4986d6c8e 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,58 +5,58 @@ version: 2 updates: - - package-ecosystem: 'npm' # See documentation for possible values - directory: '/Website' # Location of package manifests + - package-ecosystem: "npm" # See documentation for possible values + directory: "/Website" # Location of package manifests schedule: - interval: 'daily' + interval: "daily" commit-message: - prefix: 'chore(npm)' + prefix: "chore(npm)" labels: - - 'dependencies 📦️' - - 'npm 📦️' + - "dependencies 📦️" + - "npm 📦️" reviewers: - SaptarshiSarkar12 - - - package-ecosystem: 'maven' # See documentation for possible values - directory: '/' # Location of package manifests + + - package-ecosystem: "maven" # See documentation for possible values + directory: "/" # Location of package manifests schedule: - interval: 'daily' + interval: "daily" commit-message: - prefix: 'chore(maven)' + prefix: "chore(maven)" labels: - - 'dependencies 📦️' - - 'maven 📦️' + - "dependencies 📦️" + - "maven 📦️" reviewers: - SaptarshiSarkar12 - - - package-ecosystem: 'github-actions' - directory: '/.github/workflows' + + - package-ecosystem: "github-actions" + directory: "/.github/workflows" schedule: # Check for updates to GitHub Actions every weekday - interval: 'daily' + interval: "daily" commit-message: - prefix: 'chore(ci)' + prefix: "chore(ci)" labels: - - 'dependencies 📦️' - - 'CI/CD 🔁' + - "dependencies 📦️" + - "CI/CD 🔁" reviewers: - SaptarshiSarkar12 - - package-ecosystem: 'docker' + - package-ecosystem: "docker" directories: - - '/Docker/dev/CLI' - - '/Docker/dev/GUI' - - '/Docker/dev/commons/base' - - '/Docker/dev/commons/runner' - - '/Docker/prod/CLI' - - '/Docker/prod/GUI' + - "/Docker/dev/CLI" + - "/Docker/dev/GUI" + - "/Docker/dev/commons/base" + - "/Docker/dev/commons/runner" + - "/Docker/prod/CLI" + - "/Docker/prod/GUI" schedule: # Check for updates to Docker every day - interval: 'daily' + interval: "daily" commit-message: - prefix: 'chore(docker)' + prefix: "chore(docker)" labels: - - 'dependencies 📦️' - - 'docker 🐋' + - "dependencies 📦️" + - "docker 🐋" reviewers: - SaptarshiSarkar12 diff --git a/.github/labeler.yml b/.github/labeler.yml index c91aec268..eb66e47c3 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,32 +1,43 @@ "Website 🌐": -- changed-files: - - any-glob-to-any-file: ['Website/**'] + - changed-files: + - any-glob-to-any-file: ["Website/**"] "App 💻": -- changed-files: - - any-glob-to-any-file: ['CLI/src/**', 'GUI/src/**', 'Core/src/*'] + - changed-files: + - any-glob-to-any-file: ["CLI/src/**", "GUI/src/**", "Core/src/*"] "CI/CD 🔁": -- changed-files: - - any-glob-to-any-file: ['.github/workflows/**'] + - changed-files: + - any-glob-to-any-file: [".github/workflows/**"] "dependencies 📦️": -- changed-files: - - any-glob-to-any-file: ['Website/package.json', 'Website/package-lock.json', 'pom.xml', '.github/workflows/**', 'CLI/pom.xml', 'GUI/pom.xml', 'Core/pom.xml'] -- head-branch: ['^dependabot'] + - changed-files: + - any-glob-to-any-file: + [ + "Website/package.json", + "Website/package-lock.json", + "pom.xml", + ".github/workflows/**", + "CLI/pom.xml", + "GUI/pom.xml", + "Core/pom.xml", + ] + - head-branch: ["^dependabot"] "documentation 📝": -- changed-files: - - any-glob-to-any-file: ['**/*.md'] + - changed-files: + - any-glob-to-any-file: ["**/*.md"] "maven 📦️": -- changed-files: - - any-glob-to-any-file: ['pom.xml', 'CLI/pom.xml', 'GUI/pom.xml', 'Core/pom.xml'] + - changed-files: + - any-glob-to-any-file: + ["pom.xml", "CLI/pom.xml", "GUI/pom.xml", "Core/pom.xml"] "npm 📦️": -- changed-files: - - any-glob-to-any-file: ['Website/package.json', 'Website/package-lock.json'] + - changed-files: + - any-glob-to-any-file: + ["Website/package.json", "Website/package-lock.json"] "docker 🐋": -- changed-files: - - any-glob-to-any-file: ['Docker/**', 'docker-compose.yml'] \ No newline at end of file + - changed-files: + - any-glob-to-any-file: ["Docker/**", "docker-compose.yml"] diff --git a/.github/linters/.jscpd.json b/.github/linters/.jscpd.json index e1741f212..b57e0042a 100644 --- a/.github/linters/.jscpd.json +++ b/.github/linters/.jscpd.json @@ -8,4 +8,4 @@ "CLI/src/main/java/main/Drifty_CLI.java", "GUI/src/main/java/backend/FileDownloader.java" ] -} \ No newline at end of file +} diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 2b63b97f9..7310e7788 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,8 +1,11 @@ ## Fixes issue + + Fixes # ## Changes proposed + ## Check List (Check all the applicable boxes) @@ -14,7 +17,9 @@ Fixes # - [ ] The title of my pull request is a short description of the requested changes. ## Screenshots + ## Note to reviewers + diff --git a/.github/release.yml b/.github/release.yml index 9c8b32cd8..e89f158ad 100644 --- a/.github/release.yml +++ b/.github/release.yml @@ -57,10 +57,10 @@ changelog: - "dependencies 📦️" - title: Bug 🪲 Fixes in Docker 🐋 labels: - - "docker 🐋" - - "bug 🐛" + - "docker 🐋" + - "bug 🐛" exclude: - labels: + labels: - "App 💻" - "documentation 📝" - "Website 🌐" @@ -73,4 +73,4 @@ changelog: exclude: labels: - "App 💻" - - "documentation 📝" \ No newline at end of file + - "documentation 📝" diff --git a/.github/workflows/formatter.yml b/.github/workflows/formatter.yml index 8a5aa51ca..41358a04a 100644 --- a/.github/workflows/formatter.yml +++ b/.github/workflows/formatter.yml @@ -3,21 +3,18 @@ name: Format on: push: paths-ignore: - - "Website/**" - - "*.md" - "*.txt" pull_request: paths-ignore: - - "Website/**" - - "*.md" - "*.txt" workflow_dispatch: jobs: formatting: - name: Format Java files + name: Format files runs-on: ubuntu-latest - permissions: write-all + permissions: + contents: write steps: - name: Checkout repository uses: actions/checkout@v4 @@ -30,13 +27,17 @@ jobs: java-version: 21 - name: Format Java files run: mvn rewrite:run + - name: Install prettier + run: npm install -g --save-dev --save-exact prettier + - name: Format the rest of the files + run: prettier . --write - name: Commit changes run: | git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" git config --global user.name "github-actions[bot]" git add . if [[ $(git status --porcelain) ]]; then - git commit -m "style: Formatted Java files" + git commit -m "style: format codebase" fi - name: Push changes if: github.event_name != 'pull_request' diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index e791315db..19c1bc190 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -19,13 +19,13 @@ jobs: - name: Checkout Code uses: actions/checkout@v4 with: - # Full git history is needed to get a proper + # Full git history is necessary to get a proper # list of changed files within `super-linter` fetch-depth: 0 ref: ${{ github.event.pull_request.head.sha }} - name: Lint Code Base id: lint - uses: super-linter/super-linter/slim@v6 + uses: super-linter/super-linter/slim@v7 continue-on-error: true env: DEFAULT_BRANCH: master diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..371bd2e04 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,5 @@ +GUI/src/main/resources/META-INF/native-image +CLI/src/main/resources/META-INF/native-image +.idea +.github/workflows +config/ \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index c35d47bd5..2f825c322 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -17,23 +17,23 @@ diverse, inclusive, and healthy community. Examples of behavior that contributes to a positive environment for our community include: -* Demonstrating empathy and kindness toward other people -* Being respectful of differing opinions, viewpoints, and experiences -* Giving and gracefully accepting constructive feedback -* Accepting responsibility and apologizing to those affected by our mistakes, +- Demonstrating empathy and kindness toward other people +- Being respectful of differing opinions, viewpoints, and experiences +- Giving and gracefully accepting constructive feedback +- Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience -* Focusing on what is best not just for us as individuals, but for the +- Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include: -* The use of sexualized language or imagery, and sexual attention or +- The use of sexualized language or imagery, and sexual attention or advances of any kind -* Trolling, insulting or derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or email +- Trolling, insulting or derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or email address, without their explicit permission -* Other conduct which could reasonably be considered inappropriate in a +- Other conduct which could reasonably be considered inappropriate in a professional setting ## Enforcement Responsibilities @@ -106,7 +106,7 @@ Violating these terms may lead to a permanent ban. ### 4. Permanent Ban **Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an +standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. **Consequence**: A permanent ban from any sort of public interaction within diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8143d945a..1054e4f6c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,9 +19,10 @@ Be sure to include as much detail as possible including step-by-step description ### Issues [**Issues**](https://github.com/SaptarshiSarkar12/Drifty/issues/new/choose) are very valuable to this project. Please check if any similar issues are already present. If not, then feel free to open that issue. - - **Feature 💡 Requests** are valuable sources of enhancements which the project can make. - - **Bug 🐞 Reports** show where this project is lacking and errors come up. - - With a **question**, you show where contributors can improve the user experience. + +- **Feature 💡 Requests** are valuable sources of enhancements which the project can make. +- **Bug 🐞 Reports** show where this project is lacking and errors come up. +- With a **question**, you show where contributors can improve the user experience. ### Projects diff --git a/Docker/macOS Docker Build Instructions.md b/Docker/macOS Docker Build Instructions.md index 67438b83c..28e1ae225 100644 --- a/Docker/macOS Docker Build Instructions.md +++ b/Docker/macOS Docker Build Instructions.md @@ -5,6 +5,7 @@ There are some steps to follow if you're going to run the Drifty GUI Docker imag ## Prerequisites You will need these programs to follow these instructions: + - [**Docker**](https://docs.docker.com/desktop/install/mac-install) - [**HomeBrew**](https://brew.sh/) - **Socat** (will be installed later in the instructions) @@ -15,23 +16,23 @@ You will need these programs to follow these instructions: Once you have Docker installed **(and running)**, open the terminal and follow these steps: - Update the local Homebrew repository and upgrade any outdated installations. This ensures that any libraries that might be needed will be up-to-date. - ```bash - brew update - brew upgrade - ``` + ```bash + brew update + brew upgrade + ``` - Install `Socat` and `XQuartz` - ```bash - brew install socat - brew install xquartz - ``` + ```bash + brew install socat + brew install xquartz + ``` - If you are going to build **Drifty GUI** Docker image using your changed source code, then run this command in the directory where the project files are present: - ```bash - docker compose build gui - ``` + ```bash + docker compose build gui + ``` - If you are going to use the pre-built **Drifty GUI** Docker image from [**GitHub Container registry releases**](https://ghcr.io/saptarshisarkar12/drifty-gui), then run this command: - ```bash - docker pull ghcr.io/saptarshisarkar12/drifty-gui:master - ``` + ```bash + docker pull ghcr.io/saptarshisarkar12/drifty-gui:master + ``` Remember to change the tag to the version/branch you want to use. ## Running the Docker image of Drifty GUI @@ -39,6 +40,7 @@ Once you have Docker installed **(and running)**, open the terminal and follow t After the Docker image of Drifty GUI has been built/pulled, we need to provide a pathway for the Docker instance to access the display. This can be done by providing it the IP address of your Mac. For simplicity and ease of use, manually (or statically) assigning an IP address to your Mac is suggested. > [!NOTE] +> >
> > Why static IP address is preferred for running Drifty GUI in Docker on macOS? @@ -50,19 +52,23 @@ After the Docker image of Drifty GUI has been built/pulled, we need to provide a > We, however, need to look back... > > Routers use a service called DHCP (Dynamic Host Control Protocol) which uses a reserved pool of IP addresses. If any device connects to your network and when it is set up to use DHCP (which is always the default), it will send out a broadcast packet onto your network asking for an IP address. Your router will see that request, then it will take out an IP address from its pool, and it will give it to your device so that your device can talk on your network, access the Internet, etc. -> +> > DHCP services are also designed to make that assigned IP address expire after some time (usually three days). In case a device that was on the network is no longer on the network, it can pull that IP address back and put it into the pool so that it doesn't run out of IP addresses. This means that it is possible your local IP address might change in a short period of time. We cannot build a command to run Drifty when your IP address is changing because docker needs to send the graphics to a known IP address. -> +> > There are usually two generic ways to refer to your local ip address in a linux or Windows environment. The first way is to simply use the word `localhost` and the second way is to use the default home IP address of `127.0.0.1`. Unfortunately, neither of those generics will work in this case, so we have to give the command the exact IP address of your Mac. +> >
### Manually assigning an IP address to your Mac We first need to know the IP address that the router has assigned to your Mac. Most of the routers will use an IP address that starts with `192.168` so let's see if we have that kind of address assigned to our Mac, by running this command: + ```bash ifconfig | grep 192.168 ``` + You should see something like this: + > inet 192.168.1.123 netmask 0xffffff00 broadcast 192.168.1.255 The **IP address** that is after the word `inet` will be the address that your router assigned to your Mac. Since that address exists in the router's pool of IP addresses, so we cannot statically assign that address to your Mac. So I recommend assigning an address that is lower in value which has a better chance of being outside the router's address pool. I would use an address like `192.168.1.10`, so we will go with that. @@ -72,9 +78,9 @@ If you are not running at **_least macOS version 13 (Ventura)_**, then refer to - Go to `System Settings` by clicking on the Apple logo in the top left corner of your screen. - Click on `Network` then click on your network adapter. ![Network Settings' screenshot](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/f0a5f45e-4467-4b49-b35f-fb068bb928b2) -- Click on `Details` +- Click on `Details` ![Details of Network Adapter](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/21fd8165-82b7-4ef0-9ff3-996589cb1814) -- Now you need to change `Configure IPv4` to `Manually` and then type your **static IP address**, **subnet mask** and **gateway**. The subnet mask will look exactly like I have it here, regardless of your ip address and your router will always be `.1` (in most cases) as shown here. +- Now you need to change `Configure IPv4` to `Manually` and then type your **static IP address**, **subnet mask** and **gateway**. The subnet mask will look exactly like I have it here, regardless of your ip address and your router will always be `.1` (in most cases) as shown here. ![Configuring IPv4 manually](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/23cbe0aa-d744-4bee-b980-3dcc0ff38f66) - Click `OK` and then go back to your Terminal. diff --git a/GUI/src/main/resources/CSS/Button.css b/GUI/src/main/resources/CSS/Button.css index 77c05bb45..c58dcd730 100644 --- a/GUI/src/main/resources/CSS/Button.css +++ b/GUI/src/main/resources/CSS/Button.css @@ -1,21 +1,28 @@ .button { - -fx-background-color: linear-gradient(rgb(54,151,225) 18%, rgb(121,218,232) 90%, rgb(126,223,255) 95%); - -fx-border-color: black; - -fx-font-weight: Bold; + -fx-background-color: linear-gradient( + rgb(54, 151, 225) 18%, + rgb(121, 218, 232) 90%, + rgb(126, 223, 255) 95% + ); + -fx-border-color: black; + -fx-font-weight: Bold; } .button:pressed { - -fx-background-color: linear-gradient(rgb(126,223,255) 20%, rgb(121,218,232) 20%, rgb(54,151,225) 100%); - -fx-font-weight: Bold; + -fx-background-color: linear-gradient( + rgb(126, 223, 255) 20%, + rgb(121, 218, 232) 20%, + rgb(54, 151, 225) 100% + ); + -fx-font-weight: Bold; } .glassButton { - -fx-background-color: transparent; - -fx-border-color: transparent; + -fx-background-color: transparent; + -fx-border-color: transparent; } .glassButton:pressed { - -fx-background-color: transparent; - -fx-border-color: transparent; + -fx-background-color: transparent; + -fx-border-color: transparent; } - diff --git a/GUI/src/main/resources/CSS/CheckBox.css b/GUI/src/main/resources/CSS/CheckBox.css index 721e01134..dc7b965f1 100644 --- a/GUI/src/main/resources/CSS/CheckBox.css +++ b/GUI/src/main/resources/CSS/CheckBox.css @@ -1,11 +1,12 @@ .check-box { - -fx-background-color: transparent; - -fx-background-image: url('CheckBoxBorder.png'); - -fx-background-repeat: stretch; - -fx-background-size: 99% 99%; - -fx-padding: 0px; - -fx-font-size: 20; + -fx-background-color: transparent; + -fx-background-image: url("CheckBoxBorder.png"); + -fx-background-repeat: stretch; + -fx-background-size: 99% 99%; + -fx-padding: 0px; + -fx-font-size: 20; } -.check-box:determinate .box, .check-box:determinate { - -fx-background-color: transparent; +.check-box:determinate .box, +.check-box:determinate { + -fx-background-color: transparent; } diff --git a/GUI/src/main/resources/CSS/ContextMenu.css b/GUI/src/main/resources/CSS/ContextMenu.css index b2dbc6260..2463db08f 100644 --- a/GUI/src/main/resources/CSS/ContextMenu.css +++ b/GUI/src/main/resources/CSS/ContextMenu.css @@ -1,7 +1,7 @@ .rightClick { - -fx-background-color: rgb(200,200,200); - -fx-border-color: rgba(200,200,200,1.0); - -fx-border-width: 1px; - -fx-border-radius: 5px; - -fx-padding: 5px; + -fx-background-color: rgb(200, 200, 200); + -fx-border-color: rgba(200, 200, 200, 1); + -fx-border-width: 1px; + -fx-border-radius: 5px; + -fx-padding: 5px; } diff --git a/GUI/src/main/resources/CSS/DarkTheme.css b/GUI/src/main/resources/CSS/DarkTheme.css index 0d2fe025a..02165336e 100644 --- a/GUI/src/main/resources/CSS/DarkTheme.css +++ b/GUI/src/main/resources/CSS/DarkTheme.css @@ -1,33 +1,37 @@ .root { - -fx-background-color: linear-gradient(rgb(0, 53, 105) 20%, rgb(26, 21, 129) 65%, rgb(0, 0, 65) 100%); - /*-fx-background-color: linear-gradient(rgba(54,151,225,1) 18%, rgba(121,218,232,1) 90%, rgba(126,223,255,1) 95%);*/ + -fx-background-color: linear-gradient( + rgb(0, 53, 105) 20%, + rgb(26, 21, 129) 65%, + rgb(0, 0, 65) 100% + ); + /*-fx-background-color: linear-gradient(rgba(54,151,225,1) 18%, rgba(121,218,232,1) 90%, rgba(126,223,255,1) 95%);*/ } .list-cell { - -fx-background-color: transparent; - -fx-text-fill: rgb(255, 255, 255); + -fx-background-color: transparent; + -fx-text-fill: rgb(255, 255, 255); } .progress-bar .bar { - -fx-background-color: #17e500; - -fx-border-color: black; - -fx-border-width: 1.5px; + -fx-background-color: #17e500; + -fx-border-color: black; + -fx-border-width: 1.5px; } .normalLabel { - -fx-font-family: Arial; - -fx-font-weight: bold; - -fx-font-size: 20; - -fx-text-fill: ghostwhite + -fx-font-family: Arial; + -fx-font-weight: bold; + -fx-font-size: 20; + -fx-text-fill: ghostwhite; } .check-box { - -fx-background-color: #22ff00; - -fx-border-width:2px; - -fx-padding: 0px; - -fx-font-size: 20; + -fx-background-color: #22ff00; + -fx-border-width: 2px; + -fx-padding: 0px; + -fx-font-size: 20; } -.check-box:selected .box{ - -fx-background-color: #22ff00; +.check-box:selected .box { + -fx-background-color: #22ff00; } -.check-box:selected .box .mark{ - -fx-background-color: white; - -fx-border-color: black; - -fx-border-width: 1px; +.check-box:selected .box .mark { + -fx-background-color: white; + -fx-border-color: black; + -fx-border-width: 1px; } diff --git a/GUI/src/main/resources/CSS/Label.css b/GUI/src/main/resources/CSS/Label.css index 698202072..77797ee01 100644 --- a/GUI/src/main/resources/CSS/Label.css +++ b/GUI/src/main/resources/CSS/Label.css @@ -1,16 +1,16 @@ .normalLabel { - -fx-font-family: Arial; - -fx-font-weight: bold; - -fx-font-size: 20; - -fx-text-fill: ghostwhite + -fx-font-family: Arial; + -fx-font-weight: bold; + -fx-font-size: 20; + -fx-text-fill: ghostwhite; } .anchor { - -fx-font-family: Helvetica; - -fx-font-weight: bold; - -fx-font-size: 30; - -fx-text-fill:rgb(0,103,193) + -fx-font-family: Helvetica; + -fx-font-weight: bold; + -fx-font-size: 30; + -fx-text-fill: rgb(0, 103, 193); } .outline.label .text { - -fx-stroke: rgb(50,50,50); - -fx-stroke-width: .02em; + -fx-stroke: rgb(50, 50, 50); + -fx-stroke-width: 0.02em; } diff --git a/GUI/src/main/resources/CSS/LightTheme.css b/GUI/src/main/resources/CSS/LightTheme.css index 497a8a70e..557833470 100644 --- a/GUI/src/main/resources/CSS/LightTheme.css +++ b/GUI/src/main/resources/CSS/LightTheme.css @@ -1,4 +1,8 @@ .root { - /*-fx-background-color: linear-gradient(rgb(0, 53, 105) 20%, rgb(26, 21, 129) 65%, rgb(0, 0, 65) 100%);*/ - -fx-background-color: linear-gradient(rgba(54,151,225,1) 18%, rgba(121,218,232,1) 90%, rgba(126,223,255,1) 95%); + /*-fx-background-color: linear-gradient(rgb(0, 53, 105) 20%, rgb(26, 21, 129) 65%, rgb(0, 0, 65) 100%);*/ + -fx-background-color: linear-gradient( + rgba(54, 151, 225, 1) 18%, + rgba(121, 218, 232, 1) 90%, + rgba(126, 223, 255, 1) 95% + ); } diff --git a/GUI/src/main/resources/CSS/ListView.css b/GUI/src/main/resources/CSS/ListView.css index 2bcf66640..c7d59801e 100644 --- a/GUI/src/main/resources/CSS/ListView.css +++ b/GUI/src/main/resources/CSS/ListView.css @@ -1,35 +1,36 @@ .list-view { - -fx-background-color: transparent; - -fx-background-image: url('ListViewBorder.png'); - -fx-background-repeat: stretch; - -fx-background-size: 100% 100%; - -fx-padding: 5px; + -fx-background-color: transparent; + -fx-background-image: url("ListViewBorder.png"); + -fx-background-repeat: stretch; + -fx-background-size: 100% 100%; + -fx-padding: 5px; } .list-cell { - -fx-background-color: transparent; - -fx-text-fill: rgb(40,40,40); + -fx-background-color: transparent; + -fx-text-fill: rgb(40, 40, 40); } .list-cell:hover { - -fx-background-color: rgb(9,106,216); - -fx-text-fill: ghostwhite; + -fx-background-color: rgb(9, 106, 216); + -fx-text-fill: ghostwhite; } .list-view .scroll-bar:horizontal, .list-view .scroll-bar:vertical { - -fx-background-color: transparent; - -fx-border-color: transparent; + -fx-background-color: transparent; + -fx-border-color: transparent; } .list-view .scroll-bar:horizontal .thumb, .list-view .scroll-bar:vertical .thumb { - -fx-background-color:rgba(255,255,255,.15); - -fx-background-insets: 0, 0, 0; - -fx-background-radius: 0em; + -fx-background-color: rgba(255, 255, 255, 0.15); + -fx-background-insets: 0, 0, 0; + -fx-background-radius: 0em; } -.list-view .increment-button ,.list-view .decrement-button { - -fx-background-color:transparent; - -fx-border-color:transparent; +.list-view .increment-button, +.list-view .decrement-button { + -fx-background-color: transparent; + -fx-border-color: transparent; } -.list-view .scroll-bar:horizontal .track , -.list-view .scroll-bar:vertical .track{ - -fx-background-color: transparent; - -fx-border-color:transparent; +.list-view .scroll-bar:horizontal .track, +.list-view .scroll-bar:vertical .track { + -fx-background-color: transparent; + -fx-border-color: transparent; } diff --git a/GUI/src/main/resources/CSS/Menu.css b/GUI/src/main/resources/CSS/Menu.css index bdb84922f..035b95129 100644 --- a/GUI/src/main/resources/CSS/Menu.css +++ b/GUI/src/main/resources/CSS/Menu.css @@ -1,35 +1,35 @@ - .menu-bar .menu .menu-item:hover { - -fx-background-color: #0046e5; - -fx-text-fill: black; + -fx-background-color: #0046e5; + -fx-text-fill: black; } -.menu:hover, .menu:showing { - -fx-background-color: #0046e5; - -fx-text-fill: black; +.menu:hover, +.menu:showing { + -fx-background-color: #0046e5; + -fx-text-fill: black; } .menu .label:hover { - -fx-text-fill: ghostwhite; + -fx-text-fill: ghostwhite; } .menu-item { - /*-fx-background-color: #F2F2F2;*/ - -fx-text-fill: #000000; - -fx-font-family: verdana; - -fx-font-size: 11.4px; - -fx-background-color: ghostwhite; - -fx-border-color: rgba(200,200,200,1); - -fx-border-width: 0px; + /*-fx-background-color: #F2F2F2;*/ + -fx-text-fill: #000000; + -fx-font-family: verdana; + -fx-font-size: 11.4px; + -fx-background-color: ghostwhite; + -fx-border-color: rgba(200, 200, 200, 1); + -fx-border-width: 0px; } .menu-item .label { - -fx-text-fill: #000000; - -fx-font-family: verdana; + -fx-text-fill: #000000; + -fx-font-family: verdana; } .menu-item:focused .label { - -fx-text-fill: ghostwhite; - -fx-font-family: verdana; + -fx-text-fill: ghostwhite; + -fx-font-family: verdana; } .menu-item:focused { - -fx-background: -fx-accent; - -fx-background-color: #0046e5; - -fx-text-fill: #000000; - -fx-font-family: verdana; + -fx-background: -fx-accent; + -fx-background-color: #0046e5; + -fx-text-fill: #000000; + -fx-font-family: verdana; } diff --git a/GUI/src/main/resources/CSS/ProgressBar.css b/GUI/src/main/resources/CSS/ProgressBar.css index c6220b62a..7083fa190 100644 --- a/GUI/src/main/resources/CSS/ProgressBar.css +++ b/GUI/src/main/resources/CSS/ProgressBar.css @@ -1,8 +1,8 @@ .progress-bar .track { - -fx-background-color: transparent; + -fx-background-color: transparent; } .progress-bar .bar { - -fx-background-color: #0046e5; - -fx-border-color: black; - -fx-border-width: 1.5px; + -fx-background-color: #0046e5; + -fx-border-color: black; + -fx-border-width: 1.5px; } diff --git a/GUI/src/main/resources/CSS/ScrollPane.css b/GUI/src/main/resources/CSS/ScrollPane.css index 90dbea6ac..15aba59d2 100644 --- a/GUI/src/main/resources/CSS/ScrollPane.css +++ b/GUI/src/main/resources/CSS/ScrollPane.css @@ -1,3 +1,3 @@ .scroll-pane .viewport { - -fx-background-color: transparent; -} \ No newline at end of file + -fx-background-color: transparent; +} diff --git a/GUI/src/main/resources/CSS/TextField.css b/GUI/src/main/resources/CSS/TextField.css index db6bc692e..cc98e8b3d 100644 --- a/GUI/src/main/resources/CSS/TextField.css +++ b/GUI/src/main/resources/CSS/TextField.css @@ -1,7 +1,7 @@ .text-field { - -fx-background-color: transparent; - -fx-text-fill: black; - -fx-background-image: url('TextFieldBorder.png'); - -fx-background-repeat: stretch; - -fx-background-size: 100% 100%; + -fx-background-color: transparent; + -fx-text-fill: black; + -fx-background-image: url("TextFieldBorder.png"); + -fx-background-repeat: stretch; + -fx-background-size: 100% 100%; } diff --git a/GUI/src/main/resources/CSS/VBox.css b/GUI/src/main/resources/CSS/VBox.css index ec1b75c70..32b513423 100644 --- a/GUI/src/main/resources/CSS/VBox.css +++ b/GUI/src/main/resources/CSS/VBox.css @@ -1,9 +1,12 @@ .vbox { - -fx-background-color: rgba(0,0,0,.75); - -fx-border-color: rgba(255,255,255,.5); - -fx-border-width: 2px; - -fx-border-radius: 5px; + -fx-background-color: rgba(0, 0, 0, 0.75); + -fx-border-color: rgba(255, 255, 255, 0.5); + -fx-border-width: 2px; + -fx-border-radius: 5px; } .text { - -fx-background-color: rgba(0,0,0,.75);-fx-border-color: rgba(255,255,255,.5);-fx-border-width: 2px;-fx-border-radius: 5px; + -fx-background-color: rgba(0, 0, 0, 0.75); + -fx-border-color: rgba(255, 255, 255, 0.5); + -fx-border-width: 2px; + -fx-border-radius: 5px; } diff --git a/README.md b/README.md index b4cd9d15e..e8ee8715a 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,21 @@ -

+

Drifty Banner with App Icon

-

- Release Version +

+ 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 @@ -23,15 +23,16 @@ ## About 🔥 -- [**Drifty**](https://github.com/SaptarshiSarkar12/Drifty/) is an **open-source** interactive **File Downloader system** built using _Java_. -- It is both available in **Command-line Interface** (_CLI_) and **Graphical User Interface** (_GUI_) mode. +- [**Drifty**](https://github.com/SaptarshiSarkar12/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 +## Demo 🎥 See the video below to know how to use the application. For any help, you can open an [`issue`](https://github.com/SaptarshiSarkar12/Drifty/issues/new/choose/). For **Batch Downloading** via **Drifty CLI**, the path to a YAML file has to be provided to it. It should have the following structure : + ```yaml links: ["", ""] # [REQUIRED] - Links to the files to be downloaded # Below parameters are OPTIONAL @@ -49,12 +50,14 @@ https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/aa7ea548-f312-4345- https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/8a32ca07-1922-4c21-895d-44164bec9d76 -## Tech Stack +## Tech Stack 🛠️ The _Application_ **Drifty** is built using the following technologies : -- [Java](https://www.oracle.com/java/#rc30p1) - A programming language for building machine independent applications. + +- [Java](https://www.oracle.com/java/#rc30p1) - A programming language for building machine-independent applications. The [_Website_](https://saptarshisarkar12.github.io/Drifty/) of **Drifty** is built using the following technologies : + - [Next.js](https://nextjs.org/) - A JavaScript framework for building server-rendered React applications. - [Tailwind CSS](https://tailwindcss.com/) - A utility-first CSS framework. @@ -67,17 +70,19 @@ If you find any issues during the testing period, please open an [`issue`](https For **Users** : -### Using Drifty Application executable +### Using Drifty Application executable 📦 1. Visit the [`Drifty website`](https://saptarshisarkar12.github.io/Drifty/)

- ![Homepage of Drifty Website](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/b3a63e16-7cb7-4ad9-b00e-ed4d4d690bd3) + ![Homepage of Drifty Website](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/b3a63e16-7cb7-4ad9-b00e-ed4d4d690bd3) 2. Click on [`Download`](https://saptarshisarkar12.github.io/Drifty/#download)

- ![Download Button in Drifty Website pointed out](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/7b850e1c-a034-4085-ae25-9e5090891faa) + ![Download Button in Drifty Website pointed out](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/7b850e1c-a034-4085-ae25-9e5090891faa) 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 🎉.

-> [!TIP] -> 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. + + > [!TIP] + > 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](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/9094cfaf-5283-434b-a154-431b9e699642) + 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`](https://saptarshisarkar12.github.io/Drifty/#demo) section for examples of how to use the application.

6. If you like the project, please leave a [`star`](https://github.com/SaptarshiSarkar12/Drifty/stargazers) on GitHub.

@@ -85,55 +90,57 @@ For **Users** : ### Using Drifty Application via Docker 🐋 -> [!TIP] +> [!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. +> 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**) [**_Release Candidate releases are not available as of now_**], 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](Docker/macOS%20Docker%20Build%20Instructions.md). - -1. Pull the Docker image for Drifty using the below command - - **For Drifty CLI**, - ```bash - docker pull ghcr.io/saptarshisarkar12/drifty-cli:master - ``` - **For Drifty GUI**, - ```bash - docker pull ghcr.io/saptarshisarkar12/drifty-gui:master - ``` -2. Run the docker image using the below command - - **For Drifty CLI**, - ```bash - docker run ghcr.io/saptarshisarkar12/drifty-cli:master - ``` - **For Drifty GUI**, - ```bash - docker run -e DISPLAY=$DISPLAY --net=host -v /tmp/.X11-unix:/tmp/.X11-unix ghcr.io/saptarshisarkar12/drifty-gui:master - ``` +> - For **Linux and Windows**, please run `xhost +local:docker` before running the GUI docker image. +> - For **macOS**, please follow [these instructions](Docker/macOS%20Docker%20Build%20Instructions.md). + +1. Pull the Docker image for Drifty using the below command - + **For Drifty CLI**, + ```bash + docker pull ghcr.io/saptarshisarkar12/drifty-cli:master + ``` + **For Drifty GUI**, + ```bash + docker pull ghcr.io/saptarshisarkar12/drifty-gui:master + ``` +2. Run the docker image using the below command - + **For Drifty CLI**, + ```bash + docker run ghcr.io/saptarshisarkar12/drifty-cli:master + ``` + **For Drifty GUI**, + ```bash + 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** : +For **Contributors** : + 1. Go to the [`project link on GitHub`](https://github.com/SaptarshiSarkar12/Drifty), [**`fork`**](https://github.com/SaptarshiSarkar12/Drifty/fork) this repository and clone your fork into your local directory by running this command in your terminal. - ```bash - git clone git@github.com:SaptarshiSarkar12/Drifty.git - ``` - ![Clone Drifty](https://user-images.githubusercontent.com/105960032/194497334-856c610e-39cd-4538-a998-18afb10dac04.gif)

+ ```bash + git clone git@github.com:SaptarshiSarkar12/Drifty.git + ``` + ![Clone Drifty](https://user-images.githubusercontent.com/105960032/194497334-856c610e-39cd-4538-a998-18afb10dac04.gif)

2. Open an [`issue`](https://github.com/SaptarshiSarkar12/Drifty/issues/new/choose) ❕ describing the changes you want to make.

3. Make the changes in an IDE (preferably [`Intellij Idea`](https://www.jetbrains.com/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`](https://github.com/SaptarshiSarkar12/Drifty/stargazers) ⭐ on GitHub if you liked the project.
6. You may join our [`Discord Server`](https://discord.gg/DeT4jXPfkG) to discuss on the changes that you want to bring. -### Using Docker 🐋 for Development +### Using Docker 🐋 for Development 🛠️ > [!IMPORTANT] -> For **Linux and Windows**, please run `xhost +local:docker` before running the GUI docker image. +> For **Linux and Windows**, please run `xhost +local:docker` before running the GUI docker image. > For **macOS**, please follow [these instructions](Docker/macOS%20Docker%20Build%20Instructions.md) 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. @@ -144,7 +151,8 @@ For **Contributors** : ![image](https://user-images.githubusercontent.com/58129377/193471489-87ee10a0-f719-47ef-9d46-e5b71c611d4b.png) 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 the three dots. - Click on keep. ![image](https://user-images.githubusercontent.com/58129377/193471652-d88981c3-d903-406f-bc06-53cf77db9bf6.png) @@ -159,6 +167,7 @@ It is because Microsoft Defender could not verify it is safe as it is not common ### 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`**. @@ -168,15 +177,14 @@ You can also provide your feedback to Microsoft Defender by reporting it to be S ## Safety warning ⚠️ while Installing -- For Windows, click on **More Info** and then **Run Anyway** as present in the screen below: - ||| - |--|--| - | ![Windows Defender - More Info screen](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/0470c61c-63b1-49bd-8662-2f9eac0e120b) | ![Windows Defender - Run Anyway screen](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/d07dc9b6-cdc3-48e1-8111-7062341b662d) | +- For Windows, click on **More Info** and then **Run Anyway** as present on the screen below: + ||| + |--|--| + | ![Windows Defender - More Info screen](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/0470c61c-63b1-49bd-8662-2f9eac0e120b) | ![Windows Defender - Run Anyway screen](https://github.com/SaptarshiSarkar12/Drifty/assets/105960032/d07dc9b6-cdc3-48e1-8111-7062341b662d) | - For macOS, click on **OK** and run `sudo spctl --master-disable` in your terminal to allow running unsigned apps. Try running Drifty again.
- gatekeeper - + gatekeeper -## Contributing to the project +## Contributing to the project 🤝 - We welcome 🤝 your contributions to this Open-Source project. - Please check the [**`Contributing Guidelines`**](https://github.com/SaptarshiSarkar12/Drifty/blob/master/CONTRIBUTING.md) and the [**`Roadmaps`**](https://github.com/users/SaptarshiSarkar12/projects/3) for ways to get involved. diff --git a/Website/app/Contribute.js b/Website/app/Contribute.js index 1bbfcb294..7ad8eb99e 100644 --- a/Website/app/Contribute.js +++ b/Website/app/Contribute.js @@ -1,55 +1,113 @@ "use client"; -import {useEffect, useState} from "react" -import Image from "next/image" +import { useEffect, useState } from "react"; +import Image from "next/image"; import Link from "next/link"; export default function Contribute({ props }) { - const [values, setValues] = useState([]); - useEffect(() => { - fetch("https://api.github.com/search/repositories?q=user:SaptarshiSarkar12+repo:Drifty+Drifty").then((res) => res.json()) - .then((data) => { - setValues([data.items[0].stargazers_count, data.items[0].forks_count]) - }) - }, []) - let totalNoOfContributors = props.contrib.length; - return ( -
-
-

More Information About Drifty

-

- It is available both in CLI (Command Line Interface) and - GUI (Graphical User Interface) mode for all the major platforms like - Windows, Linux and MacOS. We believe in team work. Any contribution that brings - value to the project is highly appreciated. - You can look into the roadmap to know about the issues to work on, - in progress and completed. -

-
-
-

Be a part of Drifty Family!

-
- {props.contrib.map((item, index) => { - if (index < 7 && item.type === "User") { // We are using 7 instead of 6 because we are not counting the dependabot - return {item.login} - } - })} - -
- {totalNoOfContributors - 6}+ -
-
-
- + const [values, setValues] = useState([]); + useEffect(() => { + fetch( + "https://api.github.com/search/repositories?q=user:SaptarshiSarkar12+repo:Drifty+Drifty", + ) + .then((res) => res.json()) + .then((data) => { + setValues([data.items[0].stargazers_count, data.items[0].forks_count]); + }); + }, []); + let totalNoOfContributors = props.contrib.length; + return ( +
+
+

+ More Information About Drifty +

+

+ It is available both in CLI (Command Line Interface) and GUI + (Graphical User Interface) mode for all the major platforms like + Windows, Linux and MacOS. We believe in team work. Any contribution + that brings value to the project is highly appreciated. You can look + into the{" "} + + roadmap + {" "} + to know about the issues to work on, + + {" "} + in progress + {" "} + and completed. +

+
+
+

+ Be a part of Drifty Family! +

+
+ {props.contrib.map((item, index) => { + if (index < 7 && item.type === "User") { + // We are using 7 instead of 6 because we are not counting the dependabot + return ( + + {item.login} + + ); + } + })} + +
+ {totalNoOfContributors - 6}+
+
- ) + +
+
+ ); } - diff --git a/Website/app/Demo.js b/Website/app/Demo.js index f945d9d38..c1e67cc07 100644 --- a/Website/app/Demo.js +++ b/Website/app/Demo.js @@ -1,61 +1,122 @@ "use client"; -import { Tab } from "@headlessui/react" +import { Tab } from "@headlessui/react"; function classNames(...classes) { - return classes.filter(Boolean).join(' ') + return classes.filter(Boolean).join(" "); } -export default function Demo(){ - const tabs = ["Drifty CLI", "Drifty GUI"]; - return( -
-

Demonstration of Drifty

-

Here is a quick demo of Drifty

-
- - - {tabs.map((tab) => ( - - classNames( - 'w-36 rounded-full py-2.5 font-extrabold text-blue-700', - 'ring-blue ring-opacity-60 ring-offset-2 ring-offset-bottom focus:outline-none focus:ring-2', - 'hover:-translate-y-1 hover:scale-110 duration-200', - selected - ? 'text-white bg-blue-600 shadow' - : 'hover:bg-gray-700/[0.12]' - ) - } key={tab}>{tab} - ))} - - - -
- -
-
- -
- -
-
-
-
-
-
- ) +export default function Demo() { + const tabs = ["Drifty CLI", "Drifty GUI"]; + return ( +
+

+ Demonstration of Drifty +

+

+ Here is a quick demo of Drifty +

+
+ + + {tabs.map((tab) => ( + + classNames( + "w-36 rounded-full py-2.5 font-extrabold text-blue-700", + "ring-blue ring-opacity-60 ring-offset-2 ring-offset-bottom focus:outline-none focus:ring-2", + "hover:-translate-y-1 hover:scale-110 duration-200", + selected + ? "text-white bg-blue-600 shadow" + : "hover:bg-gray-700/[0.12]", + ) + } + key={tab} + > + {tab} + + ))} + + + +
+ +
+
+ +
+ +
+
+
+
+
+
+ ); } diff --git a/Website/app/Features.js b/Website/app/Features.js index eddfbdc7a..67b2e7985 100644 --- a/Website/app/Features.js +++ b/Website/app/Features.js @@ -52,7 +52,9 @@ const Features = () => {
-

{feature.description}

+

+ {feature.description} +

- + // Get the current year dynamically + const currentYear = new Date().getFullYear(); + return ( +
+ +
+ ); } diff --git a/Website/app/Releases.js b/Website/app/Releases.js index f54f86768..7c8771a6f 100644 --- a/Website/app/Releases.js +++ b/Website/app/Releases.js @@ -8,33 +8,33 @@ function downloadLatestRelease(OSName, applicationType) { if (applicationType === "CLI") { if (OSName === "Windows exe") { window.open( - "https://github.com/SaptarshiSarkar12/Drifty/releases/latest/download/Drifty-CLI.exe" + "https://github.com/SaptarshiSarkar12/Drifty/releases/latest/download/Drifty-CLI.exe", ); } else if (OSName === "Linux") { window.open( - "https://github.com/SaptarshiSarkar12/Drifty/releases/latest/download/Drifty-CLI_linux" + "https://github.com/SaptarshiSarkar12/Drifty/releases/latest/download/Drifty-CLI_linux", ); } else { window.open( - "https://github.com/SaptarshiSarkar12/Drifty/releases/latest/download/Drifty-CLI_macos" + "https://github.com/SaptarshiSarkar12/Drifty/releases/latest/download/Drifty-CLI_macos", ); } } else { if (OSName === "Windows exe") { window.open( - "https://github.com/SaptarshiSarkar12/Drifty/releases/latest/download/Drifty-GUI.exe" + "https://github.com/SaptarshiSarkar12/Drifty/releases/latest/download/Drifty-GUI.exe", ); } else if (OSName === "Windows msi") { window.open( - "https://github.com/SaptarshiSarkar12/Drifty/releases/latest/download/Drifty-GUI.msi" + "https://github.com/SaptarshiSarkar12/Drifty/releases/latest/download/Drifty-GUI.msi", ); } else if (OSName === "Linux") { window.open( - "https://github.com/SaptarshiSarkar12/Drifty/releases/latest/download/Drifty-GUI_linux" + "https://github.com/SaptarshiSarkar12/Drifty/releases/latest/download/Drifty-GUI_linux", ); } else { window.open( - "https://github.com/SaptarshiSarkar12/Drifty/releases/latest/download/Drifty-GUI.pkg" + "https://github.com/SaptarshiSarkar12/Drifty/releases/latest/download/Drifty-GUI.pkg", ); } } @@ -46,19 +46,19 @@ function downloadOlderReleases(OSName, applicationType, version) { window.open( "https://github.com/SaptarshiSarkar12/Drifty/releases/download/" + version + - "/Drifty-CLI.exe" + "/Drifty-CLI.exe", ); } else if (OSName === "Linux") { window.open( "https://github.com/SaptarshiSarkar12/Drifty/releases/download/" + version + - "/Drifty-CLI_linux" + "/Drifty-CLI_linux", ); } else { window.open( "https://github.com/SaptarshiSarkar12/Drifty/releases/download/" + version + - "/Drifty-CLI_macos" + "/Drifty-CLI_macos", ); } } else { @@ -66,25 +66,25 @@ function downloadOlderReleases(OSName, applicationType, version) { window.open( "https://github.com/SaptarshiSarkar12/Drifty/releases/download/" + version + - "/Drifty-GUI.exe" + "/Drifty-GUI.exe", ); } else if (OSName === "Windows msi") { window.open( "https://github.com/SaptarshiSarkar12/Drifty/releases/download/" + version + - "/Drifty-GUI.msi" + "/Drifty-GUI.msi", ); } else if (OSName === "Linux") { window.open( "https://github.com/SaptarshiSarkar12/Drifty/releases/download/" + version + - "/Drifty-GUI_linux" + "/Drifty-GUI_linux", ); } else { window.open( "https://github.com/SaptarshiSarkar12/Drifty/releases/download/" + version + - "/Drifty-GUI.pkg" + "/Drifty-GUI.pkg", ); } } @@ -115,14 +115,15 @@ export default function Releases({ props }) { }); return releases; }, [props.release]); - const filteredReleases = useMemo(() => { // Starting from v2.0.0, separate executables for windows, linux and macOS are available. So, we need three buttons (in total) in that case. + const filteredReleases = useMemo(() => { + // Starting from v2.0.0, separate executables for windows, linux and macOS are available. So, we need three buttons (in total) in that case. const releases = []; props.release.map((item) => { if ( - !item.tag_name.startsWith("v1") && - item.prerelease === false && - item.latest === false && - releases.length <= maxReleasesToDisplay + !item.tag_name.startsWith("v1") && + item.prerelease === false && + item.latest === false && + releases.length <= maxReleasesToDisplay ) { releases.push(item); } @@ -156,8 +157,11 @@ export default function Releases({ props }) { const markerToHtml = async (itemBody, itemTagName, i) => { const maxLines = window.innerWidth < 768 ? 7 : 15; if (itemBody.split("\n").length > maxLines) { - itemBody = itemBody.split("\n").slice(0, maxLines).join("\n"); - itemBody += "\n\n...[Read More](https://github.com/SaptarshiSarkar12/Drifty/releases/tag/" + itemTagName + ")"; + itemBody = itemBody.split("\n").slice(0, maxLines).join("\n"); + itemBody += + "\n\n...[Read More](https://github.com/SaptarshiSarkar12/Drifty/releases/tag/" + + itemTagName + + ")"; } const cont = await remark().use(html).process(itemBody); setContent((prev) => { @@ -170,10 +174,18 @@ export default function Releases({ props }) { await markerToHtml(item.body, item.tag_name, index); }); filteredReleases.forEach(async (item, index) => { - await markerToHtml(item.body, item.tag_name, index + filteredPreReleases.length); + await markerToHtml( + item.body, + item.tag_name, + index + filteredPreReleases.length, + ); }); filterOlderReleases.forEach(async (item, index) => { - await markerToHtml(item.body, item.tag_name, index + filteredPreReleases.length + filteredReleases.length); + await markerToHtml( + item.body, + item.tag_name, + index + filteredPreReleases.length + filteredReleases.length, + ); }); }, [filteredPreReleases, filteredReleases, filterOlderReleases]); @@ -223,7 +235,7 @@ export default function Releases({ props }) { > Download Now
- {latestVersion} + {latestVersion}
{applicationType === "GUI" && ( @@ -297,239 +309,236 @@ export default function Releases({ props }) { {filteredPreReleases.map((item, index) => { if (filteredPreReleases.length !== 0) { return ( -
- {item.tag_name} -

- {new Date(item.published_at).toString()} with{" "} - { - item.assets[0].download_count + - item.assets[1].download_count + - item.assets[2].download_count + - item.assets[3].download_count + - item.assets[4].download_count + - item.assets[5].download_count + - item.assets[6].download_count - }{" "} - Downloads -

- - {buttonStates[index] && ( -
- )} - -
-
- - {applicationType === "GUI" && ( - - )} -
- - -
-
- ); - } - })} -

- Past Releases -

-

- Download older releases of Drifty -

- {filteredReleases.map((item, index) => { - index = index + filteredPreReleases.length; - return ( -
+
{item.tag_name}

{new Date(item.published_at).toString()} with{" "} - { - item.assets[0].download_count + - item.assets[1].download_count + - item.assets[2].download_count + - item.assets[3].download_count + - item.assets[4].download_count + - item.assets[5].download_count + - item.assets[6].download_count - }{" "} + {item.assets[0].download_count + + item.assets[1].download_count + + item.assets[2].download_count + + item.assets[3].download_count + + item.assets[4].download_count + + item.assets[5].download_count + + item.assets[6].download_count}{" "} Downloads

{buttonStates[index] && ( -
+
)}
{applicationType === "GUI" && ( - + )}
+ ); + } + })} +

+ Past Releases +

+

+ Download older releases of Drifty +

+ {filteredReleases.map((item, index) => { + index = index + filteredPreReleases.length; + return ( +
+ {item.tag_name} +

+ {new Date(item.published_at).toString()} with{" "} + {item.assets[0].download_count + + item.assets[1].download_count + + item.assets[2].download_count + + item.assets[3].download_count + + item.assets[4].download_count + + item.assets[5].download_count + + item.assets[6].download_count}{" "} + Downloads +

+ + {buttonStates[index] && ( +
+ )} + +
+
+ + {applicationType === "GUI" && ( + + )} +
+ + +
+
); })} {filterOlderReleases.map((item, index) => { index = index + filteredPreReleases.length + filteredReleases.length; if (filterOlderReleases.length !== 0) { return ( -
+ {item.tag_name} +

+ {new Date(item.published_at).toString()} with{" "} + {item.assets[0].download_count + + item.assets[1].download_count}{" "} + Downloads +

+ + {buttonStates[index] && ( +
+ )} +
+ - {buttonStates[index] && ( -
- )} -
- - -
+
); } })} diff --git a/Website/app/about/page.js b/Website/app/about/page.js index 20968917f..ad8b60a91 100644 --- a/Website/app/about/page.js +++ b/Website/app/about/page.js @@ -1,42 +1,93 @@ -import Footer from "../Footer" -import Header from "../Header" -import Image from "next/image" - +import Footer from "../Footer"; +import Header from "../Header"; +import Image from "next/image"; export const metadata = { - title: "About", - description: 'About Saptarshi Sarkar, the developer of Drifty' -} + title: "About", + description: "About Saptarshi Sarkar, the developer of Drifty", +}; -export default function about(){ - return( -
-
-
-

About

-
- GitHub Profile Picture of Saptarshi Sarkar -
-
- Saptarshi Sarkar -

Open Source Software Developer

-
-
-

I am a passionate Software Developer and an open-source enthusiast building this interactive file downloading system called Drifty using Java. I am open for collaboration on open-source projects. I love contributing to open-source projects and enjoy maintaining an open-source project.

-
- -
-

My Stats

-
- - GitHub Contribution graph of Saptarshi Sarkar - -
-
-
-