0% нашли этот документ полезным (0 голосов)
2 просмотров3 страницы

Smart Freight - Backend

Документ описывает архитектуру бэкенда для системы Smart Freight, включая внедрение PostgreSQL для долгосрочного хранения данных и Redis для краткосрочного использования. Он также охватывает требования к модулю аутентификации и авторизации с поддержкой OAuth для мобильного приложения, веб-сайта и панели администратора. Дополнительно рассматриваются запланированные и фоновые задачи, такие как парсинг данных в реальном времени и резервное копирование баз данных.

Загружено:

chorrny228
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате DOCX, PDF, TXT или читать онлайн в Scribd
0% нашли этот документ полезным (0 голосов)
2 просмотров3 страницы

Smart Freight - Backend

Документ описывает архитектуру бэкенда для системы Smart Freight, включая внедрение PostgreSQL для долгосрочного хранения данных и Redis для краткосрочного использования. Он также охватывает требования к модулю аутентификации и авторизации с поддержкой OAuth для мобильного приложения, веб-сайта и панели администратора. Дополнительно рассматриваются запланированные и фоновые задачи, такие как парсинг данных в реальном времени и резервное копирование баз данных.

Загружено:

chorrny228
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате DOCX, PDF, TXT или читать онлайн в Scribd

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, и интегрировать
их в нашу систему; если о порте нет никакой информации в интернете, то
необходимо заполнить информацию из админ-панели)
-

Ссылка на визуальный сценарий - клик

Вам также может понравиться