Laravel: почему выбрали этот фреймворк для сервиса автостраховок

Laravel: почему выбрали этот фреймворк для сервиса автостраховок

Коротко о проекте

  • 01
    Что за инструмент

    Laravel — фреймворк PHP

  • 02
    Где используем

    Сервис подбора автостраховок GetPolis

  • 03
    Почему выбрали Laravel

    Ускоряет написание кода и запуск новых функций

    Не теряет в скорости работы из-за механики очередей

    Удобно искать и исправлять ошибки в коде благодаря канальной системе логирования

    Обеспечивает безопасность: хранит пароли, есть механизмы аутентификации

  • 04
    Результаты

    16 тыс. личных кабинетов агентов и клиентов в cервисе

    >100 тыс. проданных полисов за год

GetPolis подбирает КАСКО, напоминает о покупке полиса и помогает создать агентскую сеть

GetPolis — сервис подбора полисов для автострахования: он сравнивает цены на ОСАГО и каско и предлагает покупателю лучший вариант. Cервис зарабатывает на комиссиях от страховых компаний, поэтому клиенты не платят за подбор предложений.

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

Что умеет сервис:

  • Подбирать полисы по цене, с учетом скидок и акций страховщиков.
  • Рассылать клиентам напоминания о том, что полис вот-вот перестанет действовать, и предлагать купить новый.
  • Отправлять запросы в ГИБДД.
  • Упрощать работу по созданию сети. Например, с помощью сервиса можно добавлять данные и итоги продаж агентов, рассчитывать для них комиссию с продаж.

OrbitSoft разработал сервис с нуля за 10 месяцев.

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

Клиент обратился за помощью, когда подрядчик сорвал дедлайн

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

Мы провели аудит уже разработанной части cервиса и решили, что не будем создавать с нуля кодовую базу, а доработаем что есть. Это позволило нам уложиться в изначальные сроки клиента, при этом не сокращая функции сервиса.

Что дает использование Laravel

Одно из наших решений для запуска сервиса — какой фреймворк использовать. Мы остановились на Laravel, и теперь рассказываем, какие плюсы он дает для работы сервиса.

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

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

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

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

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

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

Чтобы найти полис, мы можем написать задание в файле Kernel. php, как на скриншоте: в формате cron задается интервал для вызова команды. Плюс в том, что писать задания на уровне операционной системы не нужно: фреймворк все организует сам

Удобно находить и исправлять баги, потому что Laravel умеет разделять ошибки по типам.

Фреймворк использует систему логирования, основанную на каналах, то есть логи из разных частей системы записываются в разные каналы. Еще Laravel работает с несколькими типами вывода логов, например можно выводить логи в отдельные файлы на диске, передавать в Slack или другой сервис.

Пример настройки каналов логирования: они задаются в файле config/logging.php так, как отражено на скриншоте
Мы написали два канала, сообщения для которых будут храниться в течение 30 дней в папке logs, разбитые по дням. Запись в канал orders будет выглядеть так, как на скриншоте

Данные хранятся в облаке. Это большой плюс для систем, которые обрабатывают большой объем данных. Когда место на сервере стало заканчиваться, мы перешли на облачное объектное хранилище с поддержкой Amazon S3.

Для облака использовали готовую библиотеку от Amazon — AWS SDK для PHP. Она создавалась не под Laravel, но ее легко встроить в код. Все, что нужно, — это в классе для работы с хранилищем инициализировать клиента, а потом использовать методы API.

Так выглядит инициализация
А на этом скриншоте — как выглядит получение объекта из хранилища
Еще один этап — отправка объекта в хранилище. Параметр $localPath здесь для удобства и показывает, в каком виде мы передаем данные в хранилище

Для рассылки можно использовать Mailchimp. Одна из способов зарабатывать на полисах — увеличивать число повторных покупок. Для этого мы научили сервис рассылать напоминания по электронной почте: «ваш полис скоро перестанет действовать, вот предлагаем для вас новый».

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

Для подключения рассылок использовали библиотеку spatie/laravel-newsletter. При ее установке в проекте создается файл с настройками рассылки config/newsletter.php. В нем находятся реквизиты подключения к сервису Mailchimp.

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

Данные защищены от воровства и копирования. В Laravel уже встроены решения для безопасности. Cреди них:

  • Пароли клиентов кодируются так, что даже разработчик не получает их в открытом виде.
  • Есть механизмы аутентификации: например, можно подключить готовую функцию по запоминанию пользователя.
  • Утилита Eloquent ORM защищает от взломов через формы на сайте.
  • Работает защита от межсайтовой подделки запросов. Она подключается парой строчек кода.

Результаты работы с Laravel: запустили сервис за 10 месяцев

OrbitSoft начал работать над проектом в 2019 и запустил его через 10 месяцев. Cервис работает, а мы продолжаем его поддерживать и развивать. Например, планируем запуск мобильного приложения.

Заказчик использует обе модели для заработка. С момента запуска сервиса, им свободно могли пользоваться агенты и клиенты, поэтому наш заказчик не терял деньги. Все, кто хотел бы покупать полисы через сервис, делал это без каких-либо технических ограничений.

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

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

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

10 тыс. личных кабинетов6 тыс. личных кабинетов1,6 полисов
создали пользователисоздали страховые агентыпродается каждый день

Технический блок

  • PHP 7.3
  • Laravel 5.7.29
  • Vue.js 2.6

Языки программирования

  • PHP
  • JS

Библиотеки

PHP:

  • Laravel SMS API
  • AWS SDK для PHP
  • League Flysystem
  • Laravel Newsletter

JS:

  • Vuetify
  • JQuery
  • Bootstrap
  • Axios
  • Bootstrap
  • Lodash

В чем бы вы ни нуждались, мы можем помочь!

Расскажите нам, с какими проблемами вы сталкиваетесь в своем бизнесе. Мы с нетерпением ждем вашего ответа.

Получите ответ по смс

Ваше сообщение успешно отправлено!
Представьтесь пожалуйста
Укажите номер, на который придет ответ
Нажимая на кнопку, вы даете согласие
на обработку персональных данных.