1. Общая информация
Проект представляет собой систему для логистической компании, предназначенную для
управления перевозчиками, их данными, договорами и задачами. В системе
предусмотрена авторизация пользователей с разными уровнями доступа, уведомления,
фильтрация данных и отправка сообщений перевозчикам.
2. Функциональные требования
2.1. Авторизация и управление аккаунтами
• Регистрация и вход пользователей.
• Хранение паролей в зашифрованном виде (bcrypt).
• Генерация и валидация JWT-токенов.
• Два уровня доступа:
o Администраторы – могут создавать, редактировать и удалять
перевозчиков.
o Пользователи – имеют доступ только к просмотру данных.
• Автоматическое определение пользователя по токену при входе в систему.
2.2. Работа с перевозчиками
• Создание нового перевозчика через форму.
• Редактирование данных перевозчика.
• Удаление перевозчика с подтверждением.
• Массовое удаление перевозчиков.
• Фильтрация перевозчиков по разным параметрам:
o Наличие email.
o Наличие телефона.
o Вид договора.
• Поиск перевозчиков по следующим полям:
o Название компании.
o Контактный email.
o Контактный телефон.
o ИНН / КПП.
o Код поставщика.
o Номер договора.
• Возможность выделить всех перевозчиков и снять выделение.
2.3. Управление задачами
• Добавление задачи с привязкой к перевозчику.
• Выбор даты и времени выполнения задачи.
• Автоматическое напоминание об истечении срока задачи.
• Изменение статуса задачи (выполнена / не выполнена).
• Удаление задачи.
2.4. Уведомления
• Встроенный механизм уведомлений о просроченных задачах.
• Вывод уведомлений в иконке «колокольчик».
• Возможность очистки уведомлений вручную или автоматически.
• Возможность открытия карточки перевозчика при клике на уведомление.
• Автоматическое обновление списка уведомлений без перезагрузки страницы.
2.5. Отправка сообщений и email
• Массовая отправка email перевозчикам.
• Возможность прикреплять файлы в email.
• Выбор перевозчиков для отправки сообщений.
• Уведомление о том, какие перевозчики не имеют email.
2.6. Интерфейс и удобство использования
• Реализация дизайна на Material-UI.
• Список перевозчиков представлен в виде карточек.
• Адаптивность интерфейса.
• Кнопка «Назад» на страницах.
• Форма с валидацией для корректного ввода данных.
3. Технологический стек
• Frontend: React (React Router, Material-UI)
• Backend: Node.js (Express.js, Sequelize)
• База данных: MySQL
• Дополнительные технологии:
o WebSockets (Socket.io) – для обновления уведомлений в реальном времени.
o JWT (jsonwebtoken) – для аутентификации.
o bcrypt – для хеширования паролей
• Вывод уведомлений в иконке «колокольчик».
• Возможность очистки уведомлений вручную или автоматически.
• Возможность открытия карточки перевозчика при клике на уведомление.
• Автоматическое обновление списка уведомлений без перезагрузки страницы.
2.5. Отправка сообщений и email
• Массовая отправка email перевозчикам.
• Возможность прикреплять файлы в email.
• Выбор перевозчиков для отправки сообщений.
• Уведомление о том, какие перевозчики не имеют email.
2.6. Интерфейс и удобство использования
• Реализация дизайна на Material-UI.
• Список перевозчиков представлен в виде карточек.
• Адаптивность интерфейса.
• Кнопка «Назад» на страницах.
• Форма с валидацией для корректного ввода данных.
3. Технологический стек
• Frontend: React (React Router, Material-UI)
• Backend: Node.js (Express.js, Sequelize)
• База данных: MySQL
• Дополнительные технологии:
o WebSockets (Socket.io) – для обновления уведомлений в реальном времени.
o JWT (jsonwebtoken) – для аутентификации.
o bcrypt – для хеширования паролей.
4. API Эндпоинты
4.1. Аутентификация
• POST /api/auth/register – регистрация пользователя.
• POST /api/auth/login – вход в систему.
• GET /api/auth/user – получение информации о текущем пользователе.
4.2. Работа с перевозчиками
• GET /api/carriers – получение списка перевозчиков.
• GET /api/carriers/:id – получение информации о конкретном перевозчике.
• POST /api/carriers – создание нового перевозчика.
• PUT /api/carriers/:id – редактирование перевозчика.
• DELETE /api/carriers/:id – удаление перевозчика.
• POST /api/carriers/delete-multiple – массовое удаление перевозчиков.
4.3. Задачи
• GET /api/tasks/:carrierId – получение задач перевозчика.
• POST /api/tasks – создание задачи.
• PUT /api/tasks/:id – обновление задачи.
• DELETE /api/tasks/:id – удаление задачи.
4.4. Уведомления
• GET /api/tasks/notifications – получение списка уведомлений.
• POST /api/tasks/clear-notifications – очистка уведомлений.
• POST /api/tasks/remove-notification – удаление одного уведомления.
4.5. Отправка email
• POST /api/send-bulk-email – отправка email нескольким перевозчикам
Разделы:
Опубликован:
27.02.2025 | 11:40 [поднят: 27.02.2025 | 11:40]
Заказ находится в архиве