Предыдущий проект Следующий проект

Сервис KeepSnap

https://keepsnap.com/

Целью проекта было создать уютную платформу для дистрибуции личных фотографий к конечному пользователю с удобной оплатой.

Представим ситуацию: фотограф ходит по городу и фотографирует всех желающих. Он раздает свои визитки, где помимо основных его контактов крупно написан адрес его персональной странички. Зашедшие туда люди могут найти свои фотографии и купить их. Одним из главных плюсов можно считать, что фотографии сделаны на качественную фототехнику, опытным человеком, понимающим правила композиции с верной экспозицией. Фотоаппараты и мобильные телефоны есть почти у всех, но мало кто откажется от хороших снимков на память.

Наша команда разработчиков в тесном сотрудничестве с заказчиком, создавала сервис, где любой фотограф, от любителя до профессионала мог бы зарабатывать вполне простым и доступным способом. В разработке использовали Symfony2, Sphinx, Grunt и ещё дюжину технологий. Проект живет и постоянно развивается. Появляются новые возможности для фотографов, улучшается удобство использования интерфейса.

Дизайн логотипа

Планировалось использовать логотип как с текстовой подписью, так и без, в том числе в интерфейсе, иконках мобильных приложений. Поэтому форма знака должна была быть достаточно узнаваема, оригинальна и не перегружена сложностью форм.

Среди вариантов реализации была попытка обыграть смысловые вариации названия. Таким образом в знак было вложено бумажник, фотоаппарат. Также в знаке можно увидеть альбом для фотографий. Логотип говорит о том что сервис ориентирован на фотографов, что мы храним фотографии и позволяем на этом заработать.

Проектирование

Сервис можно условно разделить на несколько отдельных частей. Каждая часть задумана таким образом чтоб эффективно решать задачи пользователя. Такая сложная структура сайта требует внимания всей команды, чтобы оставаться понятной конечному пользователю.

Разработка начиналась с тщательного проектирования MySQL базы данных и в целом основной архитектуры проекта. Обсуждались технологии, которые будут использоваться для проекта.

За основу для проекта был выбран PHP framework Symfony2. Благодаря его гибкости не составляет труда как дописывать новый функционал, так и вносить правки и изменения в уже существующий. Для обеспечения сохранности пользовательских данных было принято решение для всего проекта использовать безопасное SSL соединение.

Адаптивный дизайн галереи фотографа

Интерфейс галереи выполняет несколько важных функций: быстрый поиск своих фотографий по дате и времени съемки, удобный просмотр и добавление в корзину. Фильтр по времени удобен при поиске фотографий у активных фотографов, сделавших сотни снимков за день. Предусмотрена возможность для пользователя пожаловаться на фотографию и запросить удаление её из галереи фотографа. Интерфейс одинаково хорошо работает и на экране монитора, и на планшете, и на телефоне.

Интерфейс фотографа

Это «домашняя» страница фотографа. Здесь он загружает отснятые фотографии в максимально доступном качестве, управляет публикацией и редактирует EXIF данные снимков. У пользователя есть возможность редактировать несколько фотографий одновременно. Удобный фильтр позволяет выбрать фотографии за определенную дату.

Снимки можно загружать просто перетянув файлы из папки в окно браузера. Они проходят автоматическую проверку на соответствие размеру и формату. Далее на сервере генерируются уменьшенные изображения для предпросмотра фотографий в галерее. При загрузке мы сохраняем оригинальную EXIF информацию, на основе которой рассчитывается дата и время съемки.

Со временем мы заменили в интерфейсе растровую графику на векторную, что позволило добиться максимально четкого отображения на экранах с любой плотностью пикселей, включая Retina.

Рейтинги пользователей

Рейтинг рассчитывается на основе проданных фотографий и является градацией, которая влияет на процентное соотношение заработка фотографа от продажи. Простые и понятные иконки иллюстрируют текущий рейтинг фотографа.

На сайте фотограф может заказать личные визитки с адресом своей страницы. При желании он может указать свои дополнительные контакты, такие как имя, телефон, e-mail. Есть возможность сгенерировать pdf файл визитки чтоб напечатать визитку самостоятельно.

Серверная часть

Как уже упоминалось выше проект разработан на современном PHP framework Symfony2. Данные хранятся в MySQL базе данных. Так же используется Sphinx с RealTime Index для осуществления поиска. Для разделения нагрузки и решения некоторых длительных и ресурсоемких задач был использован RabbitMQ.

Для обработки загружаемых фотографий и создания превью изображений для фотографий используется ImageMagick®. Крупные превью создаются как Progressive JPEG, что позволяет быстрее загружать изображения на странице. Для уменьшения веса превью фотографий из них удаляется вся EXIF информация.

KeepSnap поддерживает загрузку не только JPEG изображений, а также файлы формата DNG. Чтоб из DNG сгенерировать превью с учетом всех выставленных параметров и настроек фотографа была разработана специальная утилита-конвертер, которая рендерит JPG превью с учетом всех корректировок и настроек сделанных фотографом в DNG файле.

Для работы с мобильными приложениями проект обладает RESTful API. Также API используется для загрузки изображений прямо из редактора Adobe Lightroom, для которого был разработан специальный плагин.

Статистика

У каждого фотографа есть доступ к полезной статистике своего профиля. Можно анализировать свои продажи прямо из интерфейса сайта. Кроме этого к профилю фотографа можно подключить Google Analytics и получать ещё более развернутую статистику.

Для отображения графиков используется JavaScript библиотека Highcharts. Которая позволяет выводить понятные и удобные графики со статистикой по продажам и доходам. Статистику возможно получать за нужный период дат, а также в разрезе дня, недели или месяца.

Система оплаты

При покупке фотографий на сервисе пользователю предоставляется 2 варианта оплаты: PayPal и платежные карты. Для обработки платежей с платежных карт был интегрирован сервис Payfirma.

Форма заполнения данных о платеже максимально проста и удобна. На сервере используется защищенное SSL соединение для обеспечения безопасности пользовательских данных.

Также в студии сделали полноценные мобильные приложения для пользователей сервиса. Разработка велась для платформ iOS и Android.

Так как многие профессиональные фотографы используют Adobe Lightroom при обработке снимков, мы написали плагин позволяющий выгружать фотографии из программы прямо на сервис.

KeepSnap Directory

У сервиса есть ответвление, представляющее из себя каталог фотографов открытый для просмотра всеми желающими. Фотограф размещаясь в каталоге, указывает своё местоположение, стили в которых он работает, контактные данные и своё портфолио.

Клиенты фотографов через удобный интерфейс поиска находят фотографов подходящих под условия поиска и связываются с ними. Максимально быстрый и простой способ найти работу для фотографа. Дизайн каталога также продуман с учетом разных экранов устройств.

Для отображения карты и маркеров фотографов на карте используется Leaflet Javascript библиотека с Google Maps. В каталоге возможен поиск фотографов с учетом дистанции от указанного местоположения, что позволяет точнее фильтровать результаты поиска в каталоге. После просмотра работ из портфолио фотографов можно связаться с ним напрямую или добавить его в список понравившихся фотографов.

Над проектом работали:

  • Артур Мкртычян
    Артур Мкртычян

    Руководитель проектов

  • Олег
    Олег

    Дизайнер

  • Максим
    Максим

    Дизайнер

  • Игорь Богдосаров
    Игорь Богдосаров

    Верстальщик

  • Игорь Хохлов
    Игорь Хохлов

    Разработчик

  • Вадим Гуменный
    Вадим Гуменный

    Back-end разработчик

  • Саша Каратаев
    Саша Каратаев

    Разработчик

  • Саша Ленский
    Саша Ленский

    Back-end разработчик

  • Толя Макаров
    Толя Макаров

    Front-end разработчик

  • Евгений
    Евгений

    Системный администратор

  • Миша
    Миша

    QA-менеджер

  • Владимир Сутовский
    Владимир Сутовский

    Руководитель проектов

Наши проекты