О проекте
Заказчик — российская компания с офисами за рубежом, в ближайшее время планирует расширяться сразу в несколько стран. Клиент помогает гражданам РФ решать юридические вопросы во время пребывания за границей. Чтобы автоматизировать часть услуг и держать аудиторию в курсе обновлений, заказчик решил разработать онлайн-сервис.
Проблема
На старте проекта архитектура сайта не включала возможность добавлять другие страны. Офисы заказчика находились только в одном государстве, и мы адаптировали портал для работы исключительно в нём. Позднее клиент сообщил о планах выходить на новые рынки, и мы пересобрали архитектуру для этих бизнес-целей.
Решение
Разработали функции, которые обеспечивают работу портала за рубежом. Создали архитектуру, благодаря которой сайт адаптируется для работы в нескольких странах одновременно.
Какие функции добавили
Пользователь может менять и выбирать страну пребывания из доступного списка. Также сайт сам определяет локацию пользователя по его IP.
Интерфейс адаптируется под часовой пояс пользователя.
Пользователь может записаться на консультацию в офлайн-офисы, доступные в стране его пребывания. Система учитывает расстояние и предлагает ближайшие филиалы.
Пользователю показываются только доступные ему онлайн-услуги. Их можно оформить на сайте без необходимости идти куда-то. Посетитель видит открытые слоты для записи с возможностью бронирования. Может отправлять заявления и отслеживать их статус.
Разработали личный кабинет с настройкой уведомлений по SMS, email и с помощью звонков.
Добавили возможность оплатить все услуги онлайн с помощью банков-партнёров.
Если услуги не доступны, система предлагает пользователю альтернативы: связаться с поддержкой, выбрать другой офис, выбрать другие доступные услуги.
Техническая реализация
Backend сделали на фреймворке Django (Python), для создания API использовали фреймворк Django REST Framework.
Frontend реализовали на VueJS 2 и NuxtJS 2.
Также использовали TypeScript в качестве поддержки статической типизации для JavaScript. Это позволяет находить ошибки на ранних этапах разработки и сборки проекта.
Клиентское приложение собирается, запускается и работает внутри Docker-контейнеров, которые изолированы от внешнего мира.
Запускаем клиентское приложение на боевых серверах через Pm2 — daemon-менеджер процессов. Таким образом запускается несколько экземпляров приложения одновременно, за счёт параллельной обработки запросов увеличивается производительность.
В проекте используем два эквайринга — Netahsilat и Paykeeper. С Netahsilat преодолели много проблем — зарубежные эквайринги работают не так чётко, как некоторые российские. Paykeeper добавили недавно — внедрение прошло гораздо проще.
Источник: https://www.retail.ru/