As the user moves, deletes and renames (picture) files, the database will no longer match the filesystem.
The only reliable solution for that is to add the tags into the files themselves.
There are libraries in various languages that provide an uniform simplified interface across various filesystem monitoring approaches in different OSes (inotify/fanotify in Linux/Android, fsevent in macOS, kqueue in BSDs, ReadDirectoryChangesW in Windows), but the entire approach suffers from the simple fact that moves and renames are rare compared to additions and new image creation via file editing (think resizing and such).
Also note that it would have to be running
all the time, too, and monitor all events involving the image folder(s) whenever the computer is running. The run-time overhead would be small, but not neglible!
I think you should seriously reconsider what you expect from this kind of an application, and whether you really want an always-running service consuming resources on your workstation(s).
A browser-based app would be my last choice for such a package, BTW, but that's just my personal prejudice.
Yep. Most people today do not realize how efficient an environment it is, especially the JavaScript engines; and miss the obvious benefits like no installation or privileges required, excellent visual properties and theming capabilities via CSS and SVG vector graphics elements, and so on.
(
My home page uses CSS and embedded SVG, contained in a single 21,749-byte uncompressed file, and is exactly as sharp on any resolution and device.)
Although it is online-only, just do yourself a favour and explore the online
EasyEDA electronics design suite a bit.
There is no technical barriers for something like that to also work locally, without any server or network connections –– and you really don't need to use any external libraries or frameworks either! The "Save" operations will always pop up a file selection dialog unless you use the
FileSystem API and
FileSystemDirectoryEntry objects that not all browsers support (and which only works locally, not in a web environment, which are why I do not normally use it). AFAIK, there is no directory modification notification mechanisms available yet.