Previous project Next project

KeepSnap service

The aim of the project was to create a comfortable platform with a convenient payment for the distribution of personal photos to the end user.

Let’s imagine the situation: a photographer walks around the city and takes pictures of all persons wishing to. He gives his business cards, where in addition to the main contacts the address of his personal page is given in large print. The one who visits the page can find their pictures and buy them. We see here a couple of advantages - photos were taken on quality photo equipment with the correct exposure, by an experienced person who understands the rules of composition. Almost everyone has cameras and mobile phones, but few will refuse professional quality shots.

Our development team in close collaboration with customers has created a service where any photographer, from amateur to professional could earn in quite simple and affordable way. In our development Symfony2, Sphinx, Grunt and another dozen of technologies were used. The project is alive and constantly evolving. New opportunities for photographers keep appearing, as well as convenience and ease of interface is constantly improved.

Logo Design

The plan was to use the logo both with and without a text and also apply it to interface and icons for mobile applications. Therefore the form of the sign should to be rather recognizable, original and not overloaded with complicated forms.

As one of the possible embodiments we tried turning to was the semantic variation of the name. Thus, the sign contained a wallet and a camera. Also, the sign showed a photo album. The logo points that the service is aimed at photographers that we store photos and allow you to make money.


Service can be conditionally divided into several parts. Each piece is designed to deal effectively with the user tasks. Such a complex structure of the site needs close attention of the whole team in order to make it clear to an end user.

Development began with the careful design of MySQL databases and generally of the main architecture of the project. We discussed technologies to be used for the project.

PHP framework Symfony2 was chosen as the basis for the project. Due to its flexibility, it is easy to elaborate new functional and make corrections and changes to the existing one. To ensure the safety of user data, it was decided to use a secure SSL connection for the whole project.

Adaptive Design of Photographer Gallery

Gallery interface performs several important functions: a quick search of your photos by date and time of shooting, easy viewing and adding to a cart. Filter by time is convenient for active photographers who make hundreds of images per day to search for the photos. We provided possibility for a user to complain about the photo, and request its removal from the gallery. The interface works equally well on the monitor screen, on the tablet and the phone.

Interface of a photographer

This is the "home" page of a photographer. Here one loads taken pictures at the most available quality, controls the publication and edits EXIF data of images. A user has possibility to edit multiple photos at once. Convenient filter allows you to select photos according to a specific date.

Snapshots can be loaded simply by dragging files from a file to the browser window. They are automatically checked for correct size and format. Next, the server generates thumbnails for previewing photos in the gallery. When loading we keep the original EXIF ​​information, upon which date and time of shooting is calculated.

Over time, we have replaced bitmapped graphics for vector graphics in the interface that lets us maximize the image precision on screens with any pixel density, including Retina.

User Ratings

Rating is calculated upon the quantity of sold pictures. It’s a gradation which is affected by the percentage between earnings and sales of a photographer. Simple and clear icons illustrate current rating of a photographer.

On the site a photographer can order personal business cards with the address of his/her page. If desired, one can indicate its additional contacts such as name, phone, e-mail. There is possibility to generate a pdf file of a business card to print on his/her own.

The server part

As it was mentioned above, the project is designed on the modern PHP framework Symfony2. Data is stored in the MySQL database. Also Sphinx with RealTime Indexes is used for search. For load sharing and resolving some of the long and intensive tasks RabbitMQ was used.

ImageMagick® is used to process uploaded photos and to create images preview for photos. Large previews are created as Progressive JPEG that allows faster images downloading on the page. In order to reduce the weight of photos preview, all EXIF ​​information is deleted.

KeepSnap supports downloading of not only JPEG images but also files of DNG format. To generate previews of DNG, taking into account all restrictions and settings set by a photographer, a special utility converter has been developed. It renders the JPG preview concerning all the adjustments and settings made by a photographer in the DNG file.

The project has RESTful API for use with mobile applications. API is also used to load images directly from Adobe Lightroom editor, for which a special plug was designed.


Each photographer has access to useful statistics of their profile. One can analyze their sales directly from the site's interface. Moreover, Google Analytics can be connected to the profile of a photographer that would help to get even more detailed statistics.

Highcharts JavaScript library is used to display charts. This allows displaying clear and convenient graphs with statistics on sales and earnings. Statistics may be received for the desired period of dates, as well as consecutive and detailed one by day, week or month.

Payment system

When purchasing photos on the service user is given two payment options: PayPal and cards. For the processing of payments with payment cards Payfirma service has been integrated.

Form for filling payment data is very simple and convenient. A secure SSL connection is used on the server for protection of user's data.

The studio has also made mobile applications for users of the service. The development was carried out for iOS and Android platforms.

Given that many professional photographers use Adobe Lightroom in the processing of pictures, we have written a plug-in that allows uploading photos directly from the program to the service.

KeepSnap Directory

The service has an offshoot representing a directory of photographers open for everyone. A photographer posting in the catalog indicates his/her location, the styles he follows, contact details and the portfolio.

Photographers' customers using convenient search interface find photographers which are suitable for the search conditions and connect with them. This gives a quick and easy way to find a job for a photographer. The design of the catalog is also well-positioned for different device screens.

Leaflet Javascript library with Google Maps is used to display maps and markers of photographers on a map. In the catalog you can search for photographers minding the distance from the specified location that allows you to filter your search results more precisely. After viewing the work of photographers’ portfolio, you can contact one directly or add one to the list of your favorite photos.


  • Artur Mkrtychian
    Artur Mkrtychian

    Project Manager

  • Oleg


  • Maksym


  • Igor Bogdosarov
    Igor Bogdosarov

    Front End Developer

  • Igor Hohlov
    Igor Hohlov


  • Vadim Gumenniy
    Vadim Gumenniy

    Back End Developer

  • Sasha Karataev
    Sasha Karataev


  • Alex Lensky
    Alex Lensky

    Back End Developer

  • Anatoliy Makarov
    Anatoliy Makarov

    Front End Developer

  • Yevhen

    System Administrator

  • Misha

    QA Manager

  • Vladimir Sutowski
    Vladimir Sutowski

    Project Manager

Case Studies