Photo Library API using JSON

Executive Summary

Created a remote services document which defines server side interfaces or a Mac client. Implemented JSON based interfaces for data exchange with the Mac client. The services support a native Mac photo management application. The services allow for authenticating users, photo uploading, tagging, rating and categorizing images based on search preferences of the user. There are three types of users; photo librarian, photographer and end users. The photographers upload photos and can tag/categorize them and request download of other similar images based on tag matches. The users can browse the photos and tag them and request downloads. The librarian approves the photos and can manage tags/default albums.

The system users are presented with default albums and allowed to create their own personal albums. Implemented more like this and less like this feature which uses tags to fetch related images. Implemented dynamic creation of albums based on tags, here the album photos are populated based on new arrivals of photos that match tags specified. Implemented static albums. Implemented extraction of metadata from the uploaded photo and creation of thumbs using Image Magick.

The focus was on speed and we implemented several optimizations to ensure that the API responses were fast enough for the Mac client. Implemented authentication with a remote API that uses a token based algorithm for data exchange for each user type.

The application was built using the cake PHP framework on Ubuntu Linux with image magick used for generation of thumbs and JSON interfaces for dataexchange.

About our Client

Entertainment Company