B2B-портал страновых рисков
Портал помогает корпоративным подписчикам самостоятельно находить события безопасности по своим странам, а аналитикам — публиковать материалы и управлять доступами

Задача
Консалтинговая компания в сфере управления рисками поездок готовила аналитику в Excel и отправляла корпоративным подписчикам недельные сводки. Клиенты получали общую рассылку, а отдельные выгрузки аналитики собирали вручную. Заказчику нужен был закрытый портал, где подписчики могли бы сами находить информацию по назначенным странам. Аналитикам требовалось единое место для ведения событий, публикации материалов и управления клиентскими доступами.
Самостоятельный поиск вместо общей рассылки
Создали клиентский кабинет с поиском и фильтрами по стране и уровню риска. Подписчик может найти нужные события, открыть страницу страны и собрать выборку по своей географии.
Результаты можно выгрузить в XLSX или CSV. Экспорт учитывает выбранные фильтры и доступные клиенту страны — отдельную подборку больше не нужно запрашивать у аналитика.
Событие вместе с оценкой риска
В карточке события собраны дата, локация, источник и описание, а также влияние на сотрудников и бизнес. Здесь же показаны оценки риска и рекомендации, если они подготовлены. Это даёт подписчику контекст для оценки ситуации.
Сохранили привычную аналитикам модель: риск для сотрудников и бизнеса оценивается отдельно по пяти уровням. Итог определяется по большей из двух оценок, а в клиентском кабинете отображается по шкале High, Medium и Low.
Карта мира и интерактивный глобус помогают рассматривать события в географическом контексте.
Рабочее пространство для аналитиков
В административной панели аналитики ведут страны, регионы и события, управляют клиентами и назначают им доступную географию. Материал можно подготовить в черновике и опубликовать, когда он готов: подписчики видят только опубликованные события.
Для переноса данных добавили импорт XLSX по шаблону заказчика с поддержкой иерархии регионов. Подготовленные таблицы можно загрузить в портал без переноса каждого события вручную.
Доступ в пределах подписки
Каждому корпоративному клиенту назначают страны, по которым он получает аналитику. Эти ограничения действуют при поиске, выгрузке и переходе по прямой ссылке на страну или событие.
Вход защищён от перебора паролей. Журнал действий позволяет проследить изменения материалов, публикации, выдачу и отзыв доступа.
Техническая часть
Техническая часть
Портал разработали на Next.js 15 и TypeScript, данные хранятся в PostgreSQL 16. Для карты и глобуса использовали D3, topojson и world-atlas, для работы с таблицами — exceljs.
MVP развернули на VPS заказчика. Портал готов к подключению корпоративных клиентов и работает на инфраструктуре заказчика без зависимости от хостинга студии.
Проект в цифрах
От подписания ТЗ до запуска в продакшене
Цели
- Перенести аналитику из Excel и рассылок в закрытый портал
- Дать подписчикам самостоятельный поиск и экспорт событий
- Ограничить доступ каждого клиента назначенными странами
- Объединить публикацию материалов и управление доступами
Целевая аудитория
- Корпоративные подписчики аналитики страновых рисков
- Аналитики консалтинговой компании
Что нужно пользователю
Job to be done — от ситуации к результату
Я получал недельную рассылку событий безопасности и был ограничен её содержимым. Самостоятельно найти нужные сведения по странам, с которыми работает моя компания, было нельзя.
Хочу оценивать риски для сотрудников и бизнеса по нашей географии, опираясь на описание событий и рекомендации аналитиков.
Я самостоятельно нахожу сведения по нужным странам и собираю подборки для работы. Описание события, его последствия и рекомендации доступны вместе.
Что внутри
Поиск событий и фильтры по стране и уровню риска
Страницы стран и карточки событий с оценками и рекомендациями
Отдельные оценки риска для сотрудников и бизнеса
Карта мира и интерактивный глобус
Черновики и публикация событий
Импорт XLSX по шаблону заказчика
Экспорт XLSX и CSV с учётом фильтров и доступов
Назначение стран каждому клиенту
Защита входа и журнал действий администратора
Как работали
Разработка административной панели и клиентского кабинета
Добавление карты, глобуса и работы с таблицами
Разграничение доступа по ролям и странам
Развёртывание MVP на инфраструктуре заказчика
Нужен похожий проект?
Расскажите о задаче — оценим объём, сроки и стоимость, предложим решение. Есть ТЗ — загрузите его и получите предварительную цифру за несколько минут.
Другие проекты
Смотреть все работы
Telegram-помощник для сервиса оплаты зарубежных подписок рассчитывает стоимость заказа и передаёт сложные обращения оператору

Развили CRM и личные кабинеты ЕСБ для ведения дел о банкротстве, обмена данными с Битрикс24 и обращения за юридической поддержкой

Сайт сети ломбардов в Новосибирске с каталогом товаров, обращением за оценкой по фотографиям и адресами отделений