Folder Ranger

Good morning/afternoon!

During a week-long power outage caused by Hurricane Beryl, I developed this application on my Linux MacBook. I used this time to create a solution for reducing storage use by identifying duplicate data in large datastores, ranging from 30 to 40 TB or even greater.

Recognizing this as an opportunity to refine my skills and explore a new programming language, I embarked on this project. Rather than delve into the details of sourcing power for my laptop, let’s focus on how this application works.

giant

Application Overview

Primary Function: Duplicate Detection

The core functionality of the application is to identify duplicate files by computing the hash of each file. Additionally, it can identify duplicates based on file names.

How It Works

giant

The application computes the hash for each file, stores this information efficiently, and matches the values to identify duplicates. Duplicate entries are interactive, allowing users to open the file location in Explorer directly.

Key Terminology

Hash: A unique, fixed-size string of characters that represents the contents of a file, functioning like a digital fingerprint.

Download:

Currently, the project is compiled weekly, may access the latest version from the build pipeline by downloading the whole Artifacts folder or browsing to the desired binary. Stable releases are either uploaded to my S3 storage or from the repo's Deploy > Releases page.

Stable Releases:

[0.1.4 - Download] From S3 Bucket

Artifacts/Binary [Navigate To Gitlab]

Windows - buildwindows Linux - Further testing required Mac - Current not available

Repository

Repo is hosted on my Gitlab.

Future Enhancements, Updated 07/24/2024

The application has proven useful, and I plan to add several quality-of-life features and fine-tune its functionality as time permits. Upcoming improvements include:

  • Sign the application so MS recognizes
  • File type categorization charts
  • Export options to Excel/CSV - Done!
  • User interface adjustments for improved flow - Done!

Testing

WDIO & Playwright are used for testing, Playwright is the current CI/CD pipeline framework. CI testing can be found at the repo's Pages section.

Every commit, the code is tested against the above frameworks. Branch merges into main, a Playwright report is generated for the Pages section.

Automation

Builds and tests every Monday night, build artifacts/.exe can be found here

Change Log:

Change log can be found at: Change Log

Known Issues:

  • Currently when downloading the app, MS Defender SmartScreen does not verify the file. This is because i have not yet paid for a CA to sign the app with.

License

This application is distributed under the MIT License, reflecting my intent to make it freely available for widespread benefit. Folder Ranger Repository License

MIT License

Copyright (c) 2024 Steven Payne

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Contact

If you find this application useful or have any questions, please feel free to reach out. I will continue to update this document with additional information as time allows.*