Enterprise-проект — личный кабинет клиентов компании ЕВРАЗ

Задача

Создать B2B-личный кабинет для клиентов компании ЕВРАЗ.

Evraz plc (Evraz, LSE: EVR) — международная вертикально-интегрированная металлургическая и горнодобывающая компания с активами в Российской Федерации, Украине, США, Канаде, Чехии, Италии, Казахстане и ЮАР… Входит в число крупнейших производителей стали в мире. Собственная база железной руды и коксующегося угля практически полностью обеспечивает внутренние потребности ЕВРАЗа. Компания входит в ведущий индекс Лондонской Фондовой Биржи FTSE-250. ЕВРАЗ объединяет около 90 000 сотрудников по всему миру.

Личный кабинет должен:

  1. Агрегировать информацию из нескольких источников (SAP, специализированный софт и т.д.) и обеспечить нетривиальную логику регистрации.
  2. Давать возможность быстрого «снятия» важных показателей из любого места.
  3. Давать мощные инструменты для работы с табличными данными (повторить excel в вебе).
  4. Обеспечивать высокий уровень безопасности коммерческой информации.

Решение

Проект объемный, поэтому полное описание мы привели в нашем блоге. А здесь просто тезисно перечислим решения и функционал, примененные в проекте.

Быстрый доступ к важным показателям:

  1. Рабочий стол (dashboard);
  2. Адаптивная верстка (доступ с мобильных устройств);
  3. Наглядные графики, диаграммы и виджеты.

Сложный табличный интерфейс (“excel в вебе”):

  1. Большой объем данных — до 40 столбцов, десятки тысяч строк.
  2. Фильтрация, настройка отображаемых фильтров.
  3. Сортировка. Одновременно можно сортировать по нескольким столбцам.
  4. Группировка и агрегации. Одновременно можно группировать по нескольким столбцам. По сгруппированным столбцам выводится сумма значений (там, где это необходимо).
  5. Настройка выводимых столбцов:
    1. Перетаскивание столбцов.
    2. Изменение ширины столбцов с запоминанием измененных размеров для каждого набора.
  6. Возможность самостоятельно создавать (и сохранять) наборы столбцов, группировок, сортировок и фильтрации. При этом пользователю доступно несколько «предустановленных» наборов, сконфигурированных оптимальным образом под наиболее частые сценарии использования.
  7. «Контекстное меню» — при выборе строки, в зависимости от реестра, где мы находимся, есть возможность перехода в другие реестры с фильтрацией по значениям, связанным с выбранными строками.
  8. Выгрузка в csv и отправка на почту как всего реестра, так и выбранных строк.
  9. Специальный расширенный вид интерфейса (скрывается меню и область с фильтрами).
  10. Специальный полноэкранный вид интерфейса — табличная область максимизируется.

Агрегация информации из нескольких источников

  1. Один проект на трех серверах. Первый — база данных под управлением MSSQL (назовем его промежуточной базой данных, ПБД), второй, с документами — CRM. Третий сервер — Bitrix VM с «1С-Битрикс: Управление сайтом».
  2. Сложная схема регистрации и авторизации:
    1. пользователи хранятся не на сайте, а в сторонней БД;
    2. пользователи проходят модерацию у нескольких разных администраторов;
    3. регистрация всегда временная и истекает через N дней (администраторы могут продлить активность пользователя еще на N дней);
    4. сайт отсылает 16 разных уведомлений всем участникам этого процесса на разных этапах.
  3. Работа с оригиналами документов — SOAP, получение разных документов из разных источников. Пакетное скачивание плюс запрет хранения документов на сайте.

Высокий уровень безопасности

Были рассмотрены следующие векторы атаки:

  1. Уязвимости на уровне сервера сайта:
    1. Уязвимости программного обеспечения севера
    2. Получение доступа к консоли сервера на котором находится сайт
  2. Уязвимости на уровне CMS и самого разрабатываемого сайта
    1. Получение доступа к панели управления сайтом
    2. Получение доступа к программному коду сайта
    3. Уязвимости в программном коде сайта
  3. Уязвимости на уровне браузера пользователя
    1. Кража логина/пароля у конкретного пользователя сайта

Для каждого из них были обозначены способы защиты, реализованные при разработке.

Помимо этого:

  1. Распределение данных по нескольким серверам.
  2. Двойная авторизация доступа к коммерческим данным через механизм «сессий доступа к коммерческой информации».
  3. Разработка регламента обеспечения безопасности.

Итоги

Всё вышеописанное только первый этап проекта. Впереди второй и третий этапы, не менее интересные.

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

Читайте также — Enterprise-проект — личный кабинет клиентов компании ЕВРАЗ
Участники проекта:

Комментарии (0)