This is a rudimentary web application for searching through pictures based on the metadata within their EXIF tags. It's part of a larger ecosystem that I've developed for my own use. There are three parts: a desktop application for tagging each picture with keywords, an online photo album based on jAlbum that can display all the metadata, and PhotoSearch (this piece) which allows me to search through all the pictures based on EXIF tags (e.g. a picture containing my wife and me which was taken between 2008 and 2010)
It's not meant to be production-ready, it's really just an exercise for me, and I might as well share the code in case it's useful to someone else.
With that said, here how's to install it:
- exiftool: Update the file "getPhotoTag.py", specifically the variable EXIFTOOLPATH
Here's a good way to get exiftool
wget https://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-10.67.tar.gz
This can be copied into any directory (e.g. the directory right above this cloned repository)
This application doesn't actually search through all the EXIF tags, it's dependent on the presence of two files which contain the EXIF tag information.
Image_Metadatav2
: Contains one line for each picture, along with all keywords for that picture.KM_keyword_cache
: Simply list of all unique keywords, one per line
I've been working on this program for years. Very slowly. It feels rather like I'm sitting on my front porch, and whittling on a stick.
- jquery (included with code)
- Python 2.7 (likely already on the host machine)
- JavaScript (certainly built into the browser)
- exiftool (see Installation above)
NOTE: Looks like I was doing a number of tests with AngularJS.
- test01: Uses latest AngularJS (1.6.8) and Bootstrap 3 (v3.3.7)
- test02: Attempting Bootstrap 4.x, doesn't seem to work, back to Bootstrap3
- test03: Successfully set transition-duration
- test04: Enabled arrow keys by creating an angular directive
uib-caros
- Load 200+ pictures
- Click on left and right arrows at least 5 times
- Use left and right arrow keys at least 5 times