Веб-разработка. Разработка с нуля. ТЕХНИЧЕСКОЕ ЗАДАНИЕ (MVP WEB) 1. Общая информация Проект: Личный кабинет клиента и менеджера Платформа: Web (браузер) Цель: Приём запросов на расчёт товаров, расчёт стоимости менеджером и выставление счёта 2. Роли пользователей 2.1 Менеджер Создание аккаунтов клиентов Просмотр всех запросов Расчёт стоимости Загрузка PDF-счёта Управление статусами 2.2 Клиент Вход в ЛК Создание запросов Просмотр статусов и цен Запрос счёта Скачивание PDF-счёта 3. Авторизация 3.1 Вход Email + пароль JWT-сессия Ограничение доступа по ролям 3.2 Регистрация Саморегистрации нет Аккаунт создаёт только менеджер 4. Статусы запроса В работе Рассчитан Счёт запрошен Счёт выставлен Закрыт 5. Кабинет клиента 5.1 Дашборд Кол-во запросов: В работе Рассчитан Счёт выставлен Последние запросы Кнопка «Новый запрос» 5.2 Создание запроса Поля формы: Наименование товара (text) Артикул (text) Количество, шт (number) Комментарий (textarea) Фото (upload, до 5 файлов, jpg/png) Кнопка: «Передать в работу» Результат: Статус ? В работе Запрос отображается менеджеру 5.3 Мои запросы Таблица: Дата Артикул Количество Цена за 1 шт Итоговая сумма Статус Действия Действия: Просмотр Запросить счёт (если статус «Рассчитан») Скачать счёт (если статус «Счёт выставлен») 6. Кабинет менеджера 6.1 Список запросов Фильтр по статусам Поиск по артикулу / клиенту 6.2 Карточка запроса Отображается: Клиент Наименование Артикул Количество Комментарий клиента Фото товара Менеджер вводит: Цена за 1 шт Комментарий менеджера (опционально) Кнопка: «Рассчитать» Результат: Итог = цена ? количество Статус ? Рассчитан Клиент видит цену 6.3 Выставление счёта Если статус «Счёт запрошен»: Поле загрузки PDF Кнопка «Загрузить счёт» Результат: Статус ? Счёт выставлен PDF доступен клиенту 7. Уведомления (внутренние) Рассчитан ? клиенту Счёт запрошен ? менеджеру Счёт выставлен ? клиенту (отображаются в интерфейсе) 8. Файлы Типы файлов Фото товаров PDF-счета Ограничения Фото: до 5 файлов PDF: 1 файл 9. База данных (логическая модель) users id email password_hash role created_at requests id user_id product_name article quantity price_per_unit total_price status client_comment manager_comment created_at request_files id request_id file_url file_type (image / invoice) 10. Технологии (рекомендованные) Frontend: React + Vite Backend: Node.js (NestJS) DB: PostgreSQL Файлы: S3 / Cloudinary Хостинг: Vercel / Render.