PhotoShr
PhotoShr was started early in 2013 as an idea for fulfilling a need bloggers and other writers had when trying to source images. Sourcing photos can be a very expensive process and yet the clients Propellernet was working with had a lot of imagery already available, PhotoShr was designed to connect the two.
PhotoShr uses a Backbone driven front end pulling groups of images from a simple Laravel driven site. The images are then placed into a number of columns depending on the screen size available. Backbone was chosen as it provides an easy way of moving formatted data from the back end to the front, it also takes care of events and other elements of user interaction.
To manage such a large number of media items in the DOM the javascript library Infinity was used. As you scroll down the page this library removes the non visible heavyweight images and elements from the DOM which speeds up scrolling, it then puts them back as they become visible again.
The main application was developed using Laravel, initially using v3 of the framework but subsequently upgraded to v4 and v4.1. Laravel is used to manage the whole application including the admin functions, image uploading and manipulation.
Amazon S3 was chosen for image storage because of its reliability, cost and simplicity to work with.
Event tracking runs through segment.io which allows us to route data to a variety of different services depending on whats needed.
The site search is based on tags, and every word that is searched for is normalised and matched against existing tags. To improve matching all tags are normalised to the singular version both on the back end and also when users search the site. Future work will involve moving the site search from a tag based system to a fully featured system based on Elastic Search