Portfolio
Google Drive Organizer

I wanted rules without living in regex.

This is the organizer I run on my own 5,000+ files, on my own laptop, with a button I press in the morning.

5,000+ files guided pattern → generated matcher preview before apply manual run + undo

I could come up with the system. Keeping to it was the problem.

  • The naming convention changes.
  • Then hundreds of files need renaming.
  • On a busy day nothing makes it into a folder.

62 of every 100 workers surveyed say they spend too much time searching for information. Microsoft, 2023 Work Trend Index

The whole menu.

Run All Now

To a file

Deciding when

Pick an action. Then the files.

3 files selected
The Pile
Name Type Size Last edited Owner
lease scan but readable.pdfPDF1.2 MBMar 12, 2:14 PMme
Invoice-2024-03-15.pdfPDF84 KBMar 15, 9:02 AMme
dog insurance (the good one).pdfPDF420 KBJan 4, 11:41 AMme
Q3 but actually Q4.pptxSlides6.4 MBMar 2, 6:18 PMme
IMG_8841.jpgImage3.1 MBJun 12, 7:55 PMme

You never write the pattern. You type an example.

Type one example filename, mark the pieces that change, and the app turns them into a matcher, rename and route - then previews exactly what will happen before it touches a file.

New Rule Schedule Manual

When

Name

Location and file

Then do

1 Move to folder Filed / {CLIENT} / {DATE_year} / {DATE_month}
2 Rename {DATE} {CLIENT} invoice.{ext}

Also: Create shortcut Move to trash Flag / label Stop processing

^Invoice \| ([^|]+) \| (\d{4})-(\d{2})-(\d{2})$

A saved rule is an argument you only have once.

A rule carries a schedule, but nothing inside the app runs on a timer. I press the button, or Cloud Scheduler does.

When no rule fits, the answer is a spreadsheet.

Some files are individually cursed. Export the folder, fix them in one pass, import it back.

Renames · The Pile inventory
B2 =CONCATENATE("FinalAllocation_", TEXT(E2,"yyyy-mm-dd"))
ABCDE
1Old nameNew nameTypeModifiedCreated
2FINAL_final2_USE_THIS.xlsx=CONCATENATE("FinalAllocation_", TEXT(E2,"yyyy-mm-dd"))Sheets2024-04-112024-04-08
3allocation (2).xlsxFinalAllocation_2024-02-19Sheets2024-02-212024-02-19
4Copy of Copy of allocation.xlsxFinalAllocation_2023-11-30Sheets2023-12-022023-11-30
5Screenshot 2024-11-03 at 2.14.07 AM.png2am-idea-that-survived.pngImage2024-11-032024-11-03
6
7
Renames Inventory
Previewed. Nothing written.

One button. Watch The Pile empty.

The Pile, this morning 8 in the pile

Inbox

Invoice-2024-03-15.pdf
IMG_8841.jpg
Scan from printer (2).pdf
dog insurance (the good one).pdf
receipt from that lunch.jpg
Q3 but actually Q4.pptx
TAXES wait no that was 2022.xlsx
FINAL_final2_USE_THIS.xlsx

My Drive

2024
03 - Mar
06 - Jun
Admin things with consequences
Cold never opening this again
Maybe 2am thoughts
  1. Dated things file themselves.
  2. The new name is computed in the preview. It is written only when the rule runs.
  3. Archive takes the rest.
  4. One file refuses. It goes to the spreadsheet.

Full Drive access, said plainly.

Organizing files it did not create means edit access to the whole Drive. Google's narrower permission only covers files an app made itself.

What it asks Google for

https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/userinfo.email

The second scope is only the address, to name the account in use.

Where things live

  • Tokens sit in a local file, not on a server I host.
  • Rules sit in a JSON file next to them.
  • Trash means Drive trash. It comes back.
  • Undo holds the last fifty actions.

What runs where

  • React in the browser, Express on localhost, the Drive API in between.
  • Preview is a read against the live Drive that writes nothing.
  • There is no scheduler. A run is a button, or a POST.