• image
  • image
  • image
  • image
  • image
  • image
  • image
  • image

Проект “Мобильная доска объявлений” (Android, iOS)

Разработка: 2016

Технологии

Mobile: Android, Android SDK, Java, iOS, Objective C

Back-end: Python 3.4, Tornado 4.3, Apache Cassandra 3.0 + CQL 3.3, ElasticSearch 2.0, Autobahn IO, Redis, Redis Sentinel, Celery, Jenkins, Docker, CoreOS, ImgWizard, nGinx, Swagger, Sphinx Docs, Google Cloud Messaging, JSON, Thrift

Front-End: HTML 5, CSS3, Bootstrap 3, JavaScript

External Systems: Yandex Market, Yandex Metrica, Google Maps, Google Analytics, AppsFlyer

Предметная область

Мобильная доска объявлений с автоматическим подбором парных объявлений - автоматическое сведение продавца и покупателя, заказчика и исполнителя услуги.

Резюме проекта

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

Сценарий работы: пользователь пишет объявление-желание в мобильном приложении и отправляет его. Система при появлении каждого нового объявления ищет подходящие объявления (“отклики”) других пользователей (с учетом локации и радиуса, категории, цены), и показывает их, сортирую по релевантности, либо используя другую, указанную пользователем, сортировку. Пользователям приходят оповещения о парных объявлениях по мере их появления в системе и они могут между собой связаться посредством внутреннего чата приложения либо внешних каналов связи (телефон, SMS, email и др.).

Цель проекта: Создание мобильного приложения - доски объявлений с автоматическим подбором парных объявлений (“откликов”) под платформы Android и iOS.

Сложности и решения

  1. Автоматический подбор парных комплементарных объявлений на основе анализа текстов объявлений, соответствий ключевых слов (“глаголов”), с учётом локации, радиуса действия и цены, указанных в объявлениях. Определение релевантности результатов подбора.
    Решение: поисковый механизм на основе ElasticSearch 2.0 с настроенными наборами правил поиска и словарями. Анализ и грамматический разбор текста, определение и поиск ключевых слов.
  1. Обеспечение работы с большими объёмами данных и требуемой скорости поиска и выдачи результатов пользователям.
    Решение:
  • Использование NoSQL СУБД как основного хранилища данных;
  • Хранение оперативных данных в виде индексов поисковой машины ElasticSearch;
  • Асинхронное REST API для обмена данными между мобильными приложениями и серверной частью;
  • Горизонтальное масштабирование ключевых частей системы - базы данных, поискового механизма, системы оповещений, внутреннего чата
  • Балансировка нагрузки путём автоматического направления соединений на конкретные узлы кластеров.
  1. Создание канала связи между мобильными пользователями, обеспечивающего бесперебойную работу при высоких нагрузках и защищённость передаваемой информации при невысоком расходе потребляемого заряда батареи.
    Решение: чат с шифрованием данных, работающий по WAMP-протоколу, на основе библиотеки Autobahn-python. Для оптимизации расхода батареи мобильного устройства применена активизация канала через push-уведомления Google Cloud Messaging (GCM).
  2. Автоматическая модерация объявлений при их создании, исключение из поиска нецензурных и экстремистских объявлений.
    Решение: анализатор текста с проверкой по ключевым и стоп-словам, анализ изображений на предмет наличия порнографического контента, автоматический механизм принятия решения по объявлению по результатам валидации.

Основной функционал

  1. Управление данными пользовательского профиля.
  2. Возможность авторизации через популярные соцсети.
  3. Управление пользовательскими объявлениями и откликами на объявления.
  4. Автоматический подбор соответствующих объявлений-откликов для пользователя, их ранжировка по релевантности или по выбранному пользователем варианту сортировки (по расстоянию, рейтингу, цене и проч.).
  5. Автоматическое блокирование нецензурных объявлений, объявлений о продаже или покупке запрещённых веществ.
  6. Уведомление пользователей о подобранных откликах.
  7. Поиск объявлений по заданным пользователем фильтрам и ключевым словам.
  8. Чат для конфиденциальной связи между пользователями.
  9. Система рейтингов, оценок и отзывов; возможность поделиться объявлениями через соцсети.
  10. Возможность массовой загрузки объявлений для корпоративных клиентов.
  11. Интеграция с платформой мобильной атрибуции и маркетинговой аналитики.

+38-063-454-36-37

+38-066-358-66-63