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

Когда вы входите на сайт страховой компании, раздел «Мой аккаунт» — это место, где либо завоёвывается, либо теряется доверие. Именно здесь люди проверяют, от чего они застрахованы, подтверждают свою личность и действуют, если что-то идёт не так. Мне поручили переработать всю эту зону для Gross — создать свежий, обновлённый личный кабинет и запустить его для реальных клиентов. Эта история о том, что он делает и с какими двумя самыми сложными трудностями пришлось столкнуться.
Проблема со старым разделом аккаунта
В старой авторизованной зоне был серьёзный пробел: она показывала только те полисы, которые клиент приобрёл непосредственно на сайте. Но люди покупают страховку самыми разными способами — в офисе, через агента, по телефону. Все эти полисы были невидимы онлайн. В результате клиент мог войти в систему, увидеть два полиса и ошибочно подумать, что это всё, что у него есть.
Вдобавок к этому дизайн устарел и не соответствовал новому фирменному стилю компании. Задача состояла в двух вещах одновременно: сделать так, чтобы отображалась правда, и привести внешний вид в порядок.
Что представляет собой новый кабинет
Я спроектировал его как набор связанных страниц, каждая из которых отлично выполняет свою задачу:
- Дашборд — приветливый стартовый экран: приветствие, сводка основных полисов, последние страховые случаи и быстрые действия.
- Мои полисы — сердце системы: список всех ваших полисов с возможностью поиска и фильтрации. Каждый полис оформлен в виде аккуратной карточки со статусом, датами и ссылкой на PDF-файл.
- Убытки (Страховые случаи) — список ваших обращений, разделённый на «Активные» и «Архив», с актуальным счётчиком для каждого.
- Профиль и имущество — хаб, где вы управляете личными данными, меняете пароль, а также добавляете или удаляете свои автомобили и недвижимость.
Весь кабинет был переработан в строгом соответствии с утверждённым дизайном — единая тёмно-синяя гамма, скруглённые карточки и собственный шрифт (Google Sans), используемый исключительно внутри кабинета, благодаря чему этот раздел ощущается как отдельное, проработанное пространство.
Он также отлично работает на мобильных устройствах: на компьютере вы видите верхнюю панель навигации и боковое меню, а на смартфоне они превращаются в нижнюю панель вкладок и вертикальный список настроек — именно такой интерфейс пользователи ожидают от мобильного приложения.
Сложность № 1: отображение каждого полиса отовсюду
Это изменение, которым я горжусь больше всего. Чтобы показывать клиенту все его полисы (а не только купленные на сайте), кабинет теперь также подтягивает данные из внутреннего реестра компании, где хранятся абсолютно все контракты человека во всех филиалах.
Самым сложным было реализовать это безопасно и надёжно:
- Безопасность. Поиск выполняется по номеру паспорта (national ID) клиента — но я позаботился о том, чтобы этот номер считывался из его собственного верифицированного профиля на сервере, а не отправлялся из браузера. Это значит, что никто не сможет просмотреть чужие полисы, просто введя другой ID. Секретный ключ для доступа к внутренней системе также остаётся на сервере и полностью скрыт от браузера.
- Два источника, один чистый список. Покупки с сайта и контракты из реестра объединяются в единый список с дедупликацией, чтобы один и тот же полис никогда не дублировался. Покупки с сайта имеют приоритет при пересечении, так как содержат более подробные данные и настоящий PDF-файл.
- Страница никогда не падает. Если внутренний реестр недоступен, клиент всё равно видит свои полисы с сайта — ошибка появляется только в том случае, если оба источника одновременно выходят из строя. Проблема на бэкенде никогда не должна приводить к тому, что пользователь видит пустой экран.
Мне также пришлось переводить «сырые» данные реестра в понятный для пользователя вид: сопоставлять внутренние коды продуктов с реальными страховыми названиями и иконками, приводить к единому стандарту непоследовательные названия полей и выводить правильный статус на каждой карточке.
Тонкий баг, о котором стоит рассказать
Первая версия вообще не могла связаться с внутренней системой — запросы постоянно отклонялись. Причина оказалась на редкость неочевидной: один и тот же внутренний сервер предоставляет два «входа», и они требуют разного формата для секретного ключа — один хочет его в чистом виде, а соседний требует префикс "Bearer". Я следовал шаблону существующего рабочего кода, который использовал чистый формат, но этому новому входу требовался префикс. Я переключился на проверенную и надёжную настройку, используемую в остальной части системы, сделал обработку ключей отказоустойчивой и настроил чтение реальных ошибок сервера вместо общей ошибки сбоя. Проверено на реальной системе: чистый ключ — отказ, ключ с префиксом — успех.
Сложность № 2: подтверждение личности с помощью государственной системы ID
Некоторые действия в страховом аккаунте требуют повышенной безопасности — например, аннулирование полиса и получение возврата средств. В таких случаях статуса «авторизован» недостаточно, нужно доказать, что вы — это действительно вы.
Поэтому кабинет интегрирован с MyID — официальной системой цифровой идентификации Узбекистана. Клиент подтверждает свою личность с помощью реальной биометрической проверки, привязанной к его национальному ID. Я реализовал три способа прохождения этой процедуры для удобства на любом устройстве:
- Сканирование QR-кода на компьютере с помощью официального приложения MyID на телефоне.
- Использование камеры устройства напрямую, без телефона.
- Начало на компьютере, завершение на телефоне — компьютер показывает код, вы сканируете его телефоном, проходите проверку там, и компьютер мгновенно обновляется после её завершения.
После успешной верификации появляется зелёный значок «Проверено», и такие чувствительные операции, как отмена полиса, разблокируются. Реализация этого потребовала учёта всех нюансов работы с системами идентификации: безопасных всплывающих окон, ожидания результата с другого устройства и понятных состояний («подтверждение… / проверено / попробуйте снова»), чтобы пользователь никогда не догадывался, что происходит.
Текущее состояние и планы
Ядро кабинета уже запущено в продакшн: дашборд, полный список «Моих полисов» с контрактами изо всех филиалов, страховые случаи, профиль с автомобилями и недвижимостью, смена пароля и верификация через MyID.
Некоторые части намеренно находятся в разработке и помечены соответствующим образом в приложении — это экраны покупки полиса и оплаты (интерфейсы готовы, ожидают бэкенд), оформление отдельного страхового случая и финальный шаг возврата средств при отмене полиса. Я продолжаю их достраивать и постепенно улучшать уже работающие страницы.
Главный урок: «страница аккаунта» — это не просто экран, это обещание. Обещание того, что то, что видит клиент, является полным, корректным и принадлежит исключительно ему. Большая часть работы заключалась в том, чтобы сдержать это обещание.