Laravel: что это за PHP-фреймворк и какие задачи с его помощью можно решать

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

Laravel: что это за PHP-фреймворк и какие задачи с его помощью можно решать

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

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

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

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

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

  • 03
    Почему выбрали этот фреймворк

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

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

    Благодаря этому framework удобно искать и исправлять ошибки в PHP-коде благодаря канальной системе логирования

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

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

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

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

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

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

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

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

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

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

Полный набор функций сервиса доступен с любого устройства. Он отображается как сайт с адаптивной версткой. Мобильного приложения или web application у сервиса пока нет.

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

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

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

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

Какие задачи решает фреймворк Laravel

Заказчик передал нам проект после того, как другой подрядчик не справился с разработкой. Чтобы быстрее запустить сервис, мы решили не переделывать кодовую базу под сайт с нуля, а доработать ее.
В разработке применяли Ларавел. Это популярный и бесплатный PHP-фреймворк на архитектуре MVC. Расскажем в статье простыми словами, какие задачи с помощью него решили.

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

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

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

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

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

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

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

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

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

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

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

Для облака использовали готовую библиотеку от Amazon — AWS SDK для PHP. Почему именно эта библиотека, ведь она создана не конкретно под фреймворк Ларавел?

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

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

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

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

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

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

Данные защищены от воровства и копирования. Фреймворк предлагает решения для безопасности. Cреди них:

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

Результаты работы: фреймворк помог запустить сервис за 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

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

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

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

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