Personal Photo Gallery (Geo-enabled)
Published
I always thought photographs did an excellent job of marrying together time, location, and experience into a rich datapoint – something I wanted to track throughout my lifetime. Back in 2012 I began building a system to facilitate the capturing of this information.
The project has since expanded into a Photo Gallery website with over 10,000 photos and videos, 300+albums, and managing close to 60 gigabytes of assets (luckily media is stored on AWS S3). My geo-footprint from the service is below; you can also visit the full site here. CAUTION: the UI hasn’t been updated since 2013!
What: Custom website built to enable the cataloging of photos and videos, with support for photo metadata extraction, geo-tagging, user captioning, and easy search & retrieval.
Technologies: Ubuntu Linux, Postgres SQL Database with PostGIS extension, PHP, REST APIs, Amazon Web Services (S3, Elastic Transcoder), Google Maps JavaScript API v3, jQuery
Start: December of 2012
Recent Improvements: In early 2017, I migrated from MySQL intoPostgres/PostGIS. The main motivation for this was to take advantage of PostGIS’s geospatial features (location-based searching, storage of more complex geometries like polylines for hiking routes, etc.). Along with this migration, I realized that Postgres supported dates with timezones, and updated my existing photo data and import process to pay attention to dates with timezones. I also added support for uploading GPX tracks, which I had begun accumulating may of
Possible Future Improvements: Frontend re-vamp (current HTML & CSS is from 2012-2013), addition of GeoServer and proper OGC APIs like WFS and WMS (especially since my polyline data set is already larger than 1megabyte when sent over the wire in vector format; it would be nice to rasterize this data and expose it as a WMS layer instead).
Inspiration: This project grew out of the on-going frustration I faced with cataloging my travel photos in a single accessible location. What started as a simple custom CMS on a L.A.M.P. stack has grown to include technologies like AWS S3, and geo-spatially enabled functionality provided by PostGIS/Postgres.