← все записи

Тег #Vue

daily26 авг. 2026 г./7 мин

Всё, что было не так с одной маленькой формой

Форма «Моя семья» в личном кабинете состояла всего из нескольких полей, но проблема нашлась на каждом уровне: можно было добавить самого себя как родственника, форма требовала ID, который никто не помнит, невозможные даты приводили к ошибке, сообщения игнорировали выбранный язык, выпадающий список не закрывался, а Backspace не удалял символ. Это история полного ремонта одной обманчиво простой формы — от backend-правил и интеграции с сервисами до состояния и frontend-полировки.

#PHP#Yii2#Nuxt#Vue#UX#API design#Localization
daily25 авг. 2026 г./6 мин

Страница, которая скрывала собственный контент

При быстром соединении сайт открывался на несколько секунд серым пустым экраном, а затем изображения медленно подгружались одно за другим. Исправления оказались небольшими. Самой важной частью работы было доказать, почему существовала каждая задержка — потому что, как выяснилось, почти каждая была чьим-то предыдущим исправлением.

#Nuxt#Vue#SSR#PHP#Yii2#Performance#Caching#Web Vitals
daily16 авг. 2026 г./4 мин

Сделать медицинскую страховку понятной за пять секунд

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

#Nuxt#Vue#i18n#healthcare#UX
daily14 авг. 2026 г./3 мин

Показали сотрудникам медицинскую страховку, которую за них купил работодатель

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

#Nuxt#Vue#PHP#API integration#healthcare
daily12 авг. 2026 г./3 мин

Вошёл в аккаунт — и меня снова попросили войти. Только на телефонах

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

#MyID#auth#mobile#debugging#Vue
daily7 авг. 2026 г./5 мин

Три часа полировки: как рабочий мастер превратился в готовую к релизу функцию

Мастер онлайн-расторжения страхового полиса уже умел всё необходимое: подтверждение личности через MyID, выбор полиса, расчёт суммы возврата и отправку заявки. Но именно несколько часов финальной доработки превратили его из просто работающей функции в продукт, готовый к выпуску. За это время я ограничил список доступных полисов только теми, которые действительно можно расторгнуть, заменил обязательную повторную биометрическую проверку 30-минутным окном доверия, сделал мастер устойчивым к перезагрузке страницы и смене языка, а также научил варианты причин автоматически подстраиваться под тип страхового продукта.

#Nuxt#Vue#UX#MyID#i18n#product-thinking
daily6 авг. 2026 г./5 мин

Функция загрузки файлов, которую я реализовал, удалив большую часть собственного дизайна

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

#Nuxt#Vue#Yii2#S3#file-upload#UX#API-design
daily5 авг. 2026 г./3 мин

Авторизация работала везде — кроме телефона

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

#Nuxt#Vue#OAuth#MyID#mobile#debugging
daily4 авг. 2026 г./4 мин

Возврат уже выполнен, а сайт всё ещё показывает «В обработке»

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

#Nuxt#Vue#API integration#debugging#UX#payments
daily3 авг. 2026 г./3 мин

Проверка личности, защита от повторных заявок и понятные пустые экраны

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

#Nuxt#Vue#MyID#UX#empty states
deep dive31 июл. 2026 г./3 мин

Онлайн-расторжение страхового полиса с возвратом средств прямо на банковскую карту

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

#Nuxt#Vue#API integration#insurance#UX
weekly28 июл. 2026 г./3 мин

Три дня, чтобы личный кабинет страхования начал показывать правду

Трёхдневный спринт по развитию личного кабинета gross.uz: переход на единый достоверный источник данных, поиск страховых полисов, о существовании которых пользователи даже не подозревали, и доработка интерфейса, чтобы он ощущался как современное мобильное приложение, а не обычный веб-сайт.

#Vue#Nuxt#PHP#Yii2#API#UX
deep dive22 июл. 2026 г./5 мин

Переработка личного кабинета: единое пространство для каждого полиса клиента

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

#Nuxt#Vue#PHP/yii2
daily15 июл. 2026 г./4 мин

Моя первая задача: кнопка «Оставить отзыв», которая превратилась в полноценную full-stack функцию

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

#Vue#Nuxt#php/yii2