• Home
  • About Me / Resume
  • Contact
Picture

Background

​For years, I've used Google Photos. It's a great program for photo and video storage, allowing users to manage their content across a variety of platforms, including desktop and mobile. However, there is a key component of its design that I find frustrating, detailed in the user flow below.
Picture
This is the default space for photos, which I'll refer to as the "desktop". On the left side, my albums are shown. I've recently created one called "Mountains", and I'd like to move the third image on the desktop into that folder.
Picture
After clicking on the image, there is an option to add it to the Mountains folder. I click it.
Picture
When I click on the Mountains folder, I see that the image is there. Great! Strangely enough, though, the picture is still clearly visible in the Desktop view, demonstrating that Google Photos "duplicates" the picture instead of treating every file as if it can only have one location, as on other file management systems (i.e. Windows Explorer, Google Drive). Though the image isn't technically duplicated (it has the same exact URL as the image on the desktop), in practice, it's treated as a clone. This can make it difficult to see which files have been added to folders already.
Picture
Building upon this nature, a file can be in more than one folder. This may work for most user's needs, but my personal preference is to have one location for each file, and one location alone.

Problem Solving

​So, what exactly was I trying to accomplish? To determine this, I needed to identify the core issues. 
Picture
The desktop view is used to see every single file I have on Google Photos. I'm a neat freak, though! I'd like each and every image/video to be in a folder, not just placed on the desktop. On the opposite end of the spectrum...
Picture
"A place for everything and everything in its place." This is difficult to pull off if something can be in more than one place at the same time! In summary, then, the big issue is...
No clear feedback for which files have been sorted!
​Thankfully, there is a clear and straight-forward solution: Google Apps Script.  This is a JavaScript-based scripting language intended to extend functionality for many of Google's products, including Docs, Sheets, Slides, Forms... and luckily, Photos!

It is cross-functional across many of the products in Google Workspace, allowing different programs to interact with one another, leveraging their specific strengths.

One of the programs available for a user to write Apps Script in is Google Sheets. This suited my needs perfectly, as being able to write the results of my script to a spreadsheet would let me quickly and easily review info related to my files. So, I got to work coding and designing my program in Sheets!
Picture
Google Apps Script's current logo
Picture
Google Sheets' current logo

Coding

​Having already identified the issue I wanted to resolve, half the battle was already won! Within a few days, I was able to create a program that scanned my Google Photos library, and gave me a link to every photo that was either not in a folder or in more than one folder.
Picture
Google Apps Script's interface. It's web-based, meaning that there are no downloads required to start coding. Additionally, it's easy to start development on one computer, then continue on another.
Picture
After coding, the functions I've built appear right in Google Sheets. After running the "Write Isolated Media to Sheet" function, I can see which of my files are not in any folder!
Picture
Clearly, I'm better at coding than giving my files descriptive names.

Visual Design

​After completing the program, I knew I wanted to share the code for others to use. To accompany the code I'd release on GitHub, I aimed to make the package more complete by releasing it alongside some key art and a logo.
Picture
Picture
Picture
Picture
In the art, I focused on the program's two focuses: showing which files were in 0 folders, and which were in more than one!

​The completed key art is in a 1280x800 ratio, as advised by the Google Marketplace guidelines. Having these assets ready would facilitate the process of adding the app to the marketplace if I ever chose to do so. 

Similarly, the icon is 1x1, allowing it to be used for an icon in the Google Marketplace.

Closing

After completing all aspects of the program, I uploaded it to my GitHub. I use the tool on a frequent basis, and while it has a very specific use case, I felt it was important to freely share with anyone else who may have the same preferences for their file-storage needs.

Thank you for reading!
  • Home
  • About Me / Resume
  • Contact