KeepSnap

8
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. KeepSnap, an unusual photostock https://keepsnap.com/

Transcript of KeepSnap

Page 1: KeepSnap

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.

KeepSnap, an unusual photostockhttps://keepsnap.com/

Page 2: KeepSnap

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.

Design

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.

Page 3: KeepSnap

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.

Page 4: KeepSnap

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.

Page 5: KeepSnap

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.

Page 6: KeepSnap

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.

Statistics

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.

Page 7: KeepSnap

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.

Page 8: KeepSnap

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.