• Главная / 
  • Кейсы / 

Всё под контролем: внутренняя платформа для развития HR-бренда — RocketDev

Превью кейса

О проекте

Команда RocketDev разрабатывает не только внешние цифровые продукты, но и внутренние платформы для решения бизнес- и HR-задач клиентов. В нашем портфолио десятки кейсов: системы мониторинга, ресурсы для роста команд, инструменты найма и удержания сотрудников.

Герой этого кейса — амбициозное digital-агентство, для которого в центре внимания всегда остаются люди. Компания системно инвестирует в развитие команды: укрепляет корпоративную культуру и внедряет инструменты, которые делают повседневную работу сотрудников удобнее. Вот уже несколько лет разработку этих инструментов агентство доверяет нам.

кстати

Бизнес не стоит на месте, штат растет — и системы, созданные нашей командой, требовалось обновить и перенастроить под текущие потребности компании. За годы партнерства нам удалось добиться впечатляющих результатов: по данным eNPS, лояльность специалистов к компании стабильно сохраняется на уровне 87%, а оборот агентства вырос на 93%.

Используемые инструменты и технологии

React

React

next js

next js

NextAuth.js

NextAuth.js

Tailwind CSS

Tailwind CSS

MongoDB

MongoDB

Recharts

Recharts

Shadcn UI

Shadcn UI

TypeScript

TypeScript

Точка старта

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

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

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

подход к работе

Перед стартом проекта мы провели серию встреч с руководителями и HR-командой клиента. В ходе этих обсуждений сформировали и согласовали финальную концепцию продукта.

картинка для кейсакартинка для кейса

Структура проекта

На первом этапе вместе с дизайнерами мы изучили похожие решения других компаний. Поскольку в открытом доступе таких сервисов оказалось немного, структуру платформы пришлось продумывать практически с нуля. Чтобы лучше понять внутренние процессы компании и потребности сотрудников, мы также провели брифинг с HR-отделом клиента.

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

На главной странице разместили вводную информацию и ленту новостей. Отсюда сотрудник может быстро перейти в основные разделы портала — корпоративный магазин и сервисы для коммуникации и учета рабочих показателей.

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

UX/UI

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

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

картинка для кейсакартинка для кейсакартинка для кейсакартинка для кейса

Разработка

Разработка платформ на Next.js у нас не сводится только к созданию интерфейса, хотя его качеству наша команда уделяет особое внимание. Мы создаём стили индивидуально, без шаблонных UI-библиотек, чтобы интерфейс точно соответствовал макетам и корректно отображался на всех устройствах. В результате проект воспринимается как цельное фронтенд-приложение с единой архитектурой и универсальным набором компонентов.

Но в этом проекте нам потребовалось перейти к более сложному подходу с четким разделением клиентской и административной частей — могла возникнуть путаница в структуре проекта. Архитектура построена таким образом, чтобы сразу   понятно, к какой части системы они относятся — все отражено в названиях и расположено в соответствующих директориях. Отдельно выделили и общие элементы.

Клиентскую часть мы полностью верстали вручную, чтобы точно воспроизвести макеты и соблюсти все дизайнерские требования. Списки подарков, активностей, новостей и другие элементы интерфейса, которые видит сотрудник, мы вынесли в отдельные компоненты. Это сделало структуру интерфейса более понятной и упростило дальнейшую поддержку. При этом в клиентской части мы отказались от лишних зависимостей и оставили только те решения, которые действительно нужны пользователю.

Для административной части мы осознанно использовали готовые UI-компоненты, так как такие интерфейсы обычно имеют стандартную структуру: боковое меню, основная рабочая область, наборы рабочих стилей и функций. Это позволяет ускорить разработку и уделить основное внимание логике работы.

картинка для кейсакартинка для кейса

Наша команда не боится комбинировать разные подходы в своей работе. Методы, которые мы применили на этом проекте, позволили нам в разы ускорить разработку. Административная часть не должна быть «красивой», она должна быть понятной, функциональной и удобной для пользователя. Мы обеспечили ее всем необходимым, чтобы команда могла самостоятельно вносить изменения без участия разработчиков.

Виктор

Виктор

Frontend-программист

Данные пользователях поступают в систему из корпоративного трекера задач. Они являются основой для всей всей дальнейшей работы платформы — например, для определения заказов, доступа и других пользовательских сценариев. Это позволило избежать дублирования, а также упростить обновление и синхронизацию сведений. Такой подход гарантирует, что доступ к сервису получат только те пользователи, которые имеют действующие аккаунты в трекере. 

Мы автоматизировали процессы, которые раньше HR-менеджер выполнял вручную, — в частности, начисление мотивационных баллов и согласование корпоративных бонусов. Теперь сотруднику доступен весь процесс в одном месте: он может посмотреть свой баланс, изучить активности с дополнительными баллами и подать заявку на начисление за выполненные задачи. Администратор получает уведомление и принимает решение по заявке. После этого пользователь может перейти в раздел маркетплейса, выбрать интересующий бонус и обменять на него накопленные баллы с помощью специальной формы.

картинка для кейсакартинка для кейса

Безопасность доступа

Клиенту были особенно важны автономность платформы и ее безопасность. Незадолго
до этого проекта мы интегрировали единую авторизацию для всех корпоративных сервисов
с учетными записями сотрудников — ту же схему предстояло внедрить и в новом продукте.

Чтобы обеспечить безопасность, мы использовали не только централизованную авторизацию через корпоративный контур, но и дополнительные механизмы контроля доступа. В частности, подключили библиотеку NextAuth.js, которая отвечает за безопасную работу с пользовательскими сессиями. При каждом запросе платформа проверяет, вошёл ли пользователь в систему, активна ли его сессия, и при необходимости обновляет данные — например, меняет права доступа или завершает сессию.

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

Также мы разработали сервис, который позволяет автоматически использовать один и тот же аватар на всех платформах компании — аналог популярного онлайн-инструмента. Это решение стало для нас подстраховкой: корпоративные аватары продолжат стабильно работать несмотря на блокировки и ограничения.

Сервис встроен в платформу как отдельный открытый маршрут, к которому могут обращаться другие продукты компании. Системе нужно лишь определить, для какого профиля загружается изображение, чтобы сохранить его. Сервис работает как самостоятельное хранилище аватаров и по запросу отдаёт изображения в нужном размере.

Сервис встроен в платформу как отдельный открытый маршрут, к которому могут обращаться другие продукты компании. Системе нужно лишь определить, для какого профиля загружается изображение, чтобы сохранить его. Сервис работает как самостоятельное хранилище аватаров и по запросу отдаёт изображения в нужном размере.

правильное решение

Чтобы снизить нагрузку на сервер и ускорить работу на всех платформах, мы реализовали кэширование по содержимому. Браузер повторно запрашивает изображение только если аватар изменился, что позволяет избежать лишней обработки и ускоряет загрузку.

картинка для кейсакартинка для кейса

Интеграция сторонних сервисов

По ТЗ клиента нам требовалось добавить на платформу инструменты, которые он уже использует. Они функционировали отдельно друг от друга и сотрудникам приходилось регулярно заходить на разные ресурсы, чтобы воспользоваться ими. 

К тому же один из сервисов представлял из себя мини-приложение на базе Telegram, в котором по понятным причинам оставаться небезопасно. Это был внутренний HR-инструмент для публичного обмена благодарностями и баллами.  

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

проблема

В процессе интеграции сервиса мы столкнулись с рядом технических нюансов, связанных со сложной многоуровневой логикой мини‑приложения. В отдельных сценариях это приводило к неточностям в управлении баллами. Например, баллы могли списаться у пользователя, но не дойти до адресата. Мы внимательно перепроверили всю логику работы сервиса, убрали лишние компоненты, упростили структуру кода. В результате система начала работать корректно и без перебоев.

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

  • мониторинг трудозатрат;
  • выставление статуса «Работа в офисе/из дома/отгул»;
  • планирование отпусков. 

Бонусом мы добавили автоматический расчет доступных дней отпуска, подсказки по отработанному времени и легкий доступ к задачам в трекере. 

картинка для кейсакартинка для кейса

Итоги

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

А уже спустя полгода клиент сообщил нам о глобальных изменениях в работе команды:

  • сотрудники стали более вовлеченными в корпоративную культуру и внутренние процессы;
  • учет и контроль рабочего времени стали точнее, а процесс внесения трудозатрат — более дисциплинированным;
  • автоматизация процессов существенно снизила нагрузку на HR-отдел, освободив время на новые стратегические задачи;
  • автоматизация процессов существенно снизила нагрузку на HR-отдел, освободив время на новые стратегические задачи;

Наша платформа создала условия для более быстрого и управляемого развития компании. Уже в адаптационный период руководители и HR-менеджеры стали использовать на 30% больше данных для развития команды и принятия бизнес-решений.

Расскажите нам о своих задачах — мы предложим варианты решения. Заполните бриф или напишите нам: info@rocketdev.pro