Моя первая задача: кнопка «Оставить отзыв», которая превратилась в полноценную full-stack функцию
В свой первый рабочий день в страховой компании мне поручили «немного изменить форму обратной связи». В итоге небольшая задача превратилась в полноценную функцию, затронувшую весь продукт: плавающую кнопку на главной странице, всплывающую форму и изменения в базе данных, благодаря которым служба поддержки теперь связывается с пользователями по телефону, а не по электронной почте.

В свой первый день работы в страховой компании Gross мне дали, казалось бы, небольшую задачу: «изменить форму обратной связи». Но к моменту завершения работы изменения затронули практически весь продукт — от кнопки, которую пользователь видит на главной странице, до базы данных. Для меня это стало отличным способом разобраться, как устроена вся система.
Задача простыми словами
Компания хотела дать посетителям сайта простой способ оставить отзыв. Моей задачей было реализовать такую возможность: открыть форму, заполнить её и отправить — причём на всех трёх языках сайта: английском, русском и узбекском.
Однако очень быстро задача перестала быть просто «редактированием формы». Возник более важный вопрос: а собираем ли мы вообще ту информацию, которая действительно нужна?
Что я сделал в первую очередь: кнопку и всплывающее окно
Сначала я реализовал то, что видят пользователи. На главной странице появилась небольшая плавающая кнопка «Оставить отзыв», закреплённая в углу экрана. При нажатии открывается всплывающее окно с формой обратной связи.
Особое внимание я уделил нескольким деталям:
- Поддержка трёх языков. Все надписи мгновенно переключаются при смене языка сайта, даже если форма уже открыта.
- Удобство на мобильных устройствах. На телефонах форма не появляется маленьким окном по центру экрана, а плавно выезжает снизу — так, как пользователи привыкли видеть в современных мобильных приложениях.
- Понятное подтверждение. После отправки форма заменяется сообщением с благодарностью, чтобы пользователь сразу понимал, что отзыв успешно получен.
Самое важное изменение: номер телефона вместо электронной почты
Именно этой частью проекта я горжусь больше всего, потому что дело было не в программировании, а в понимании потребностей бизнеса.
Старая форма просила пользователя указать адрес электронной почты. Но, изучив работу службы поддержки, я заметил, что сотрудники перезванивают клиентам, а не отправляют им письма. Получается, собирались не те данные. Поэтому я заменил поле электронной почты на номер телефона.
На первый взгляд это небольшое изменение, но оно затронуло всю систему:
- Во фронтенде я заменил поле электронной почты на поле ввода номера телефона с проверкой и подсказками для корректного местного формата.
- На сервере обновил обработку формы, чтобы система принимала и проверяла номер телефона вместо email.
- В базе данных добавил новое поле для хранения номера телефона, аккуратно выполнив миграцию без изменения и потери уже существующих отзывов.
Это также стало моим первым опытом работы с backend — частью системы, написанной на PHP. До этого я занимался только клиентской частью приложения. Одна небольшая функция научила меня взаимодействию фронтенда, сервера и базы данных гораздо лучше, чем простое чтение чужого кода.
Определение страницы, с которой был отправлен отзыв
Нужно было решить ещё одну задачу. Кнопка обратной связи используется не только на главной странице, но и на различных разделах сайта, включая страницы страховых калькуляторов. Когда пользователь отправляет отзыв, службе поддержки важно понимать, к чему именно он относится: ко всему сайту или к конкретному калькулятору.
Поэтому перед отправкой форма автоматически определяет своё местоположение:
- Если пользователь находится на обычной странице — отзыв помечается как отзыв о сайте.
- Если отзыв отправляется со страницы калькулятора — сохраняется информация именно об этом калькуляторе (например, калькуляторе автострахования).
- Вопрос с оценкой тоже меняется автоматически: на странице калькулятора пользователь оценивает именно калькулятор, а не сайт целиком.
Эта информация передаётся вместе с отзывом в Telegram-уведомления и административную панель. Благодаря этому сотрудники сразу понимают, к какой части продукта относится сообщение. Для поддержки этой возможности я также добавил новое поле в серверной части приложения для хранения категории отзыва.
Что я вынес из этой задачи
- Даже небольшая задача может превратиться в полноценную функцию. Ценность была не в изменении внешнего вида формы, а в том, чтобы она собирала действительно полезную информацию.
- Использование существующих решений экономит время и снижает вероятность ошибок. На сайте уже существовал надёжный компонент ввода номера телефона, поэтому я использовал именно его.
- При работе с реальными данными особенно важна аккуратность. Отзывы пользователей уже хранились в системе, поэтому все изменения были выполнены так, чтобы не затронуть и не потерять существующие данные.