Разработать модуль отображения объектов на гугл картах

Цена договорная • наличный расчёт, безналичный расчёт
01 апреля 2019, 12:13 • 4 отклика • 36 просмотров
Требуется сделать веб-приложения для работы с картой для отображения на карте объектов из внешней системы (Bpium / Бипиум).

1. Технологические требования 1.1. Стек технологий
  • Приложение. Веб-приложение должно состоять только из фронт-енда, без использования бекенда. Во фронтенде рекомендуется использовать React, но не обяательно.
  • Карта. Для отрисовки карт требуется использовать карты Google.
  • Бекенд. Данные для отрисовки представляет внешний сервис (Бипиум) через API.

1.2. Размещение/дистрибуция Сервис будет размещен на том же сервере что и Бипиум. В качестве веб-сервера будет использоваться Апач, Нгинкс или ИИС (пока не решено). Операционная система Винда/Линукс.


1.3. Сборка Веб приложение может состоять из нескольких файлов. Основной файл index.htm должен быть минимален, содержать только подключение других модулей и параметры конфигурации: подключение к Бипиуму и прочее.


2. Бекенд Бипиум — хранилище данных. Бипиум как база данных — работает с абстрактными объектами через единый механизм. Но в отличие от базы данных работает не по SQL, а на Rest API:
https://docs.bpium.ru/api


Веб-приложению для работы потребуется только одна коллекция объектов — филиалы. Их можно получить из Бипиума используя метод получения записей из каталога:

https://docs.bpium.ru/api/records#kollekciya-zapisei

3. Функциональные требования 3.1. Авторизация


Сервис не имеет собственной авторизации, используется авторизацию к Бипиуму.


Авторизация в Бипиуме:

  • Basic-авторизация, логин и пароль предоставляет сам пользователь
3.2. Работа с картой


На экране:

  • Карта с точками (филиалами)

    • Филиалы сгруппированные по координатам в кластеры и по статусу
    • При клике на кластер — карта зумируется к выборке.
    • При клике на филиал — открывается карточка филиала (пункт 3.3.)
  • Справа панель с филиалами, которые попадают на карту

    • В списке показаны первые 100 филиалов из попавших в выборку
    • Данные филиала представлены 3 свойствами объекта филиал (адрес, число просроченных заявок (красное число), число открытых заявок (желтое число)
    • При клике на филиал — открывается карточка филиала (пункт 3.3.)
  • Над списком филиалов — фильтр

    • Фильтрация возможна по 1 свойству объекта филиал — статусу.
    • Можно выбрать несколько статусов одновременно
    • При фильтрации — меняется карта и выборка филиалов в списке

Данные:

  • Система работает по целиком заранее загруженным данным. Порядка 4000 объектов.
  • Для загрузки данных нужно использовать API Бипиума. Принцип получения данных: https://docs.bpium.ru/api/records#kollekciya-zapisei
  • API за раз может отдать не более 1000 записей. Поэтому записи нужно получить в цикле, пока не будут получены все.

Возможное расширение в ходе работы:

  • Возможно появится группировка еще по одному свойству (типу филиала)
  • Возможно увеличится количество фильтров
  • Возможно увеличится количество свойств отображаемых в объекте филиала

3.3. Работа с карточкой


При клике на филиал — открывается карточка филиала в попапе


На экране

  • Попап с iframe

    • В Iframe открыт интерфейс Бипиума, а именно карточка записи:
      https://docs.bpium.ru/integration/client/webforms#forma-vo-ves-ekran
    • Iframe сам не закрывается, надо предусмотреть закрытие по крестику
    • Если нажали в другой филиал в списке — то эта карточка закрывается и открывается новый попап с новой карточкой

Данные

После закрытия карточки нужно обновить этот объект (филиал) в данных веб-приложения. Для этого нужно сделать запрос на получение этого 1 объекта к API Бипиума:
https://docs.bpium.ru/api/records#poluchit-zapis-get