Архитектура и разработка портала для оформления юридических услуг за рубежом

О проекте

Заказчик — российская компания с офисами за рубежом, в ближайшее время планирует расширяться сразу в несколько стран. Клиент помогает гражданам РФ решать юридические вопросы во время пребывания за границей. Чтобы автоматизировать часть услуг и держать аудиторию в курсе обновлений, заказчик решил разработать онлайн-сервис. 

Проблема

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

Решение

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

Какие функции добавили

Пользователь может менять и выбирать страну пребывания из доступного списка. Также сайт сам определяет локацию пользователя по его 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/