Skip to content

A Q-Code composer to aid in managing medium and unwieldy photo collections. A Q-Code is a taxonomy that when attached to a file, makes it easier to use external search tools to locate pictures.

Notifications You must be signed in to change notification settings

lordofscripts/photoQ

Repository files navigation

PhotoQ

Lost in a forest of your digital photographic archive? Losing too much time opening images to know whether they are what you are looking for? With photoQ you can easily use (and create) a taxonomy of Images to easily identify them. That makes it much easier to use file search tools once you have a QCode.

A Q-Code is a specific categorization or taxonomy that is composed of a Q (duh!) and a 6 character alphanumeric code:

  • Source (Camera, Drone, Cellphone, Scanner, etc.)
  • Main Category (i.e. Nature)
  • Sub-category (i.e. Animalae)
  • Variant (i.e. Birds)
  • Modifier (Day/Night/Auto/None)
  • Extra (None, Confidential, Sensitive, etc.)

photoQ comes with a useful base taxonomy. But you can create your own on a JSON file and import it. As long as you know your taxonomy, you won't get lost in the forest!

Status: photoQ is still work in progress. I started it on July 22nd, 2025 during my lifetime photo collection reorganization project.

Installation

photoQ is written in pure GO (v1.24.3) and has a graphical user interface front-end developed with the GO Fyne (v2.6) framework for a great Material Design look.

    go install github.com/lordofscripts/photoQ@latest

Functional Requirements

This is what I set to do with this application.

Front-end Requirements

-[X] A multi-platform Graphical User Interface application (used GO Fyne*) -[X] Compose and validate a Q-Code according to a set taxonomy -[X] Define a flexible, yet standard classification for Pictures (Q-Code). It must be very much in line with noawadays digital image filenames. -[X] Be able to select a file and validate its name against the standard. -[X] Support multiple Fyne Themes using Theme Engine -[ ] Be able to apply a generated Q-Code onto a filename

Back-end Requirements

-[X] Ability to control application logging (off, to terminal, to file) using an API similar to that of the standard GO logger log -[X] A well-specified way to define interaction and widget dependencies -[X] Control filtering of log output (application.logfilter) -[X] A separate log file to track widget GUI interactions to verify compliance with the inter-widget dependencies. (Call Tree)

Internals and Further Development

The GUI application is composed only of a main window with a main menu and several interdependent Fyne widgets laid out in several boxes. The purpose of each widget and how it is interdependent on others can be read HERE. That document (or table) shows each widget (Fyne or custom), its name and description/purpose. It also states what is the primary condition for the widget to be enabled. There are several graphic symbols that indicate which other widgets in the chain get affected by either OnValidate, OnChange or Clicked events of the widget being described.

Then for further details about which actions are performed (effect) as a result in that chain of events, I suggest reading the INFO FLOW document. Please read both (and update accordingly) before making any changes!

Status

STATUS: It runs, needs adaption. See ~/Documents/image_classification_project.txt

A simple GUI to generate my Photo Q-Codes which are nothing but a 6 alpha code to classify the thousands of photos in my collection by appending a Q code to the filename just before the file extension. It would ake easier to select photos with a file search.

About

A Q-Code composer to aid in managing medium and unwieldy photo collections. A Q-Code is a taxonomy that when attached to a file, makes it easier to use external search tools to locate pictures.

Resources

Stars

Watchers

Forks

Packages

No packages published