Smart Freight - Backend Architecture
Архитектура инфраструктуры (Основная точка начала
разработки)
Требования:
Внедрение сущностей в PostgreSQL (SQL-база данных) для постоянного /
долгосрочного использования данных
- Таблица морских портов (сохранение всей возможной информации о морском
порту)
- Таблица пользователей (Имя, Фамилия, Пароль, Роль и т. д.)
- Отношения: Документы, Настройки уведомлений, Активные сеансы, Входящие
сообщения и т. д.
- Платежи (Сумма, Дата, Метаданные и т. д.)
Внедрение в Redis (в хранилище, база данных ключ-значение) для краткосрочного
использования данных
- Расписание судов
- Система запросов
- Система бронирования
Причина, по которой мы должны использовать PostgreSQL и Redis в тандеме:
сохранение важной информации, такой как данные пользователей и логистики, в
PostgreSQL.
сохранение краткосрочной или данных с временем жизни в Redis, таким образом, мы
можем достичь более быстрого извлечения данных с сервера.
Внедрение модуля аутентификации и авторизации
Требования:
Модуль аутентификации и авторизации должен работать на трех приложениях:
Мобильное приложение, Панель администратора, Веб-сайт
Поддержка аутентификации через Google, Facebook, Apple
Решение основано на JWT аутентификации и авторизации.
Реализация этого модуля:
- Внедрение OAuth/OpenID Connect для Google, Facebook и Apple.
- Сопоставление аутентифицированных пользовательских идентификаторов с базой
данных.
- Генерация JWT после успешной аутентификации, содержащего информацию о
пользователе.
- Проверка целостности и подлинности JWT при входящих запросах.
- Обновление токенов по мере необходимости для поддержания сеансов
пользователей.
- Создание централизованной точки аутентификации для каждого клиента
(мобильное приложение, веб-сайт, панель администратора)
- Фоновые и запланированные задания
- Требования (Запланированные задания):
- Точка доступа для CRUD запланированных задач по конкретным ролям (в
основном администратор)
- Точка доступа для уведомления пользователей / компаний о статусах посылок
Запланированные и фоновые задачи
Требования:
Парсинг информации в реальном времени от подключенных компаний с использованием
WebSockets / REST API
Резервное копирование баз данных
TODO: Запросить больше информации о частях инфраструктуры, сущностях и т.
д..
- Функционал пользователя в системе (мобильное приложение, веб-сайт):
какую информацию мы собираем о пользователях (ФИО, должность,
местоположение и т. д.)
– ФИО, КОМПАНИЯ, НЛ, ТЕЛЕФОН
– Нужны типизированные формы
– Клиента не проверяем
- На основе каких данных мы собираем информацию о портах и т. д.
(предлагаю подготовить список портов, имеющих свое API, и интегрировать
их в нашу систему; если о порте нет никакой информации в интернете, то
необходимо заполнить информацию из админ-панели)
-
Ссылка на визуальный сценарий - клик