хостинги не имеют дата-центров и серверов в РФ, поэтому хранить на нем персональные данные пользователей нельзя. К персональным данным могут даже причислить ФИО + номер телефона, поэтому необходимо задуматься об этом заранее. Для решения данной проблемы можно разделить все данные на персональные и обезличенные. Обезличенные данные можно хранить за границей, а персональные данные следует перенести в Яндекс.Облако или SberCloud. Яндекс.Облако, например, во многом копирует Amazon, зачастую сохраняя названия сервисов и их функционал, что сделает перенос наименее болезненным. Оптимизация базы данных. Мы рекомендовали оптимизировать базу данных, потому что сейчас практически все запросы выполняются в десятки раз медленнее, чем могли бы после оптимизации. Кастомная авторизация. Предложили реализовать кастомную авторизацию, потому что ранее использовалась стандартная авторизация на основе серверных cookie. На данный момент это работает следующим образом: сначала пользователь системы авторизуется через Krafter.Identity, и ему, в случае успеха, выдаются серверные cookie, которые необходимо передавать в каждом запросе, чтобы пройти авторизацию в каждом микросервисе. Это плохое решение для мобильного приложения, оно может создать проблемы при разделении UI и Back на разные проекты, так как необходимо будет прописывать политику CORS. Не рекомендуется использовать серверные cookie для авторизации между микросервисами, так как стандартная авторизация использует политику ролей, что не дает строить распределенную систему авторизации на основании более сложной политики.Микросервисная архитектура. Мы рекомендовали переделать структуру микросервисов, отправив часть кода в отдельные микросервисы по доменам данных. Например, теперь сервис Driver и сервер Logist будут запрашивать данные о рейсах в микросервисе Reis, а все операции с уведомлениями будут проходить через микросервис Notification. Это дает возможность масштабировать микросервисы независимо друг от друга, учитывая нагрузку на ту или иную часть системы.
Далее приступили к доработке платформы. Задача перед нами стояла следующая: применить новый дизайн и внести изменения в функциональность фронтенда/бэкенда исходя из него. Кроме того, мы разработали личный кабинет логиста, в дальнейших планах — разработка личного кабинет перевозчика.
Мобильное приложение водителя Дизайн приложения был разработан с учетом уже существующей дизайн-системы проекта. При этом мы старались не перегружать интерфейс лишними элементами, которые не относятся к основной задаче. Для создания мобильного приложения использовался кроссплатформенный язык программирования Flutter.
Результат
В итоге разработано удобное и функциональное мобильное приложение для водителя, помогающее четко, последовательно и быстро работать с рейсами, на которые он будет назначен.