1. Аутентификация и авторизация с использованием JWT: • В проекте используется JSON Web Token (JWT) для безопасной аутентификации пользователей. • При успешной авторизации сервер генерирует токен, который передается клиенту и используется для дальнейших запросов с авторизацией. • Токены проверяются на каждом защищенном маршруте с использованием middleware Express.js, чтобы ограничить доступ к приватным API на основе ролей и привилегий пользователя. 2. Хранение данных в MongoDB: • База данных MongoDB используется для хранения данных о пользователях, заявках, товарах и сообщениях. • Структура данных гибко настроена для хранения информации о заявках (заказчик, поставщик, стоимость, дата создания, статус). • Коллекции MongoDB хранят историю чатов между пользователями и их метаданные (временные метки, отправители и т.д.). 3. API для заявок и управления товарами: • С помощью Express.js реализованы RESTful API, позволяющие создавать, изменять, удалять и просматривать заявки. • Поставщики и заказчики могут взаимодействовать через API для управления своими товарами и статусами заявок. • API поддерживает фильтрацию заявок по статусам, типу товара и другим параметрам, обеспечивая гибкий доступ к данным. 4. Чат в реальном времени с WebSocket: • Для обмена сообщениями между пользователями в рамках заявок реализован чат с использованием WebSocket для обновления сообщений в реальном времени. • MongoDB хранит историю сообщений, а WebSocket обеспечивает мгновенную доставку новых сообщений между пользователями. 5. Проверка наличия товаров и обновление статусов: • Бэкэнд обеспечивает возможность проверки наличия товаров у поставщиков с регулярными обновлениями статусов заявок (например, “черновик”, “в процессе”, “выполнено”). • Интеграция с внутренними сервисами для отслеживания статусов выполнения заказов и уведомления пользователей об изменениях. 6. Безопасность и масштабируемость: • В проекте используются JWT для защиты маршрутов API, обеспечивая безопасный доступ к данным только для авторизованных пользователей. • MongoDB настроена для работы с большими объемами данных, обеспечивая масштабируемость системы при увеличении количества пользователей и заявок.