# It's Wooble :: Master Bluster
## 1. Цель проекта
Цель проекта разработка удобного инструмента для создания карты раскроя (порядок резки стержней), позволяющей оптимизировать расход и снизить количество неделовых остатков.
## 2. Описание системы
Система состоит из следующих основных функциональных блоков:
1. Функционал создание карты раскроя
2. Функционал личного кабинета подписчика
### 2.1. Функционал создание карты раскроя
Раскрой происходит по алгоритму представленному заказчиком. На сайте представлена возможность либо скачать файл, либо заполнить форму по выбранному материалу. Далее обработка их на сервере. И возвращение ответа либо на сайте, либо в excel файле, на усмотрение пользователя.
Также происходит проверка на ограничения для пользователей без подписки (см. 2.2.2).
#### 2.1.1. Материал
Пользователь имеет возможность выбрать один материал из списка:
* арматура
* металлический профиль (уголок)
* брус
* бревно
От исполнителя требуется поддержка только арматуры.
#### 2.1.2. Данные для работы алгоритма
Данные могут быть загруженны в двумя способами, первый форма на сайте, второй excel файл. Шаблон excel файла можно скачать с сайта. Данные для заполнения представляет заказчиком.
##### 2.1.2.1. Данные для заполнения
В одном расчёте может быть несколько подобных параметров:
* Значения длины заготовки
* Диаметра арматуры
* Списка позиций, состоящего из:
* Названия позиции
* Длинны, мм
* Количества штук
Уточнение: *excel -- В разных вкладках разные диаметры*
#### 2.1.3. Обработка данных алгоритмом
Обработка данных согласно алгоритму представленному заказчиком.
*Во время работы алгоритма пользователь видит анимацию, представленную заказчиком*
#### 2.1.4. Представление результата работы алгоритма
Во всплывающем окне пользователь видит итог раскроя. Пользователь может скачать результаты excel файлом.
Данные отображаемые плользователю для каждого диаметра отдельный список статистики и карты раскроя.
Статистика по раскрою состоит из:
* Кол-во стержней, требуемых для раскроя
* Масса всей арматуры
* Масса остатка
* Процент остатка от общего количества
* Кол-во резов арматуры
### 2.2. Функционал личного кабинета подписчика
Особый функционал по подписке. Пользователь может зарегистрироваться на платформе по электронному адресу и паролю.
#### 2.2.1. Получение подписки
Либо: при регистрации необходимо ввести token, полученный от администрации.
Либо: галочка в бд.
Либо: После регистрации администратор платформы одобряет пользователю подписку через отдельное меню администратора в личном кабинете.
#### 2.2.2. Ограничения
У пользователей без подписки имеет ограничение на обработку более 50 позиций или 20 тонн. [Справочник плотности](http://xn----7sbozac4badf.xn--p1ai/armatura_ves.php)
#### 2.2.3. Личный кабинет
Состоит из нескольких виджетов:
* Информация о пользователе
* Список проекты
##### 2.2.3.1. Информация о пользователе
В неё входит компания, почта, номер телефона. Все поля по желанию. В отдельном окне пользователь может их обновить, а также установить новый пароль.
##### 2.2.3.3. Проекты
Кнопка сохраниения расчёта как проект.
Каждый проект имеет своё название и описание заданное и обновляемое пользователем. В каждом проект может быть несколько сменных заданий.
При нажатии на переменное задание появляется возможность создать сохраняемый фильтр по уже сделанным и выбранным позициям. Также пользователь может обновить данные для перерасчёта. Сменное задание это некоторая выборка из данных расчётов для разделения работы на части.
## 3. Не функциональные требования
* Подбор доменного имени
* Дизайн в стиле стимпанка
* Видеоинструкция использования приложения
* SEO для сайта
* На сайте должны присутствовать следующие элементы: статья, партнеры проекта и контакты
* DevOps
### 3.1. Подбор доменного имени
**Требование** доменного имени *созвучность с названием проекта* (Master Bluster) и *смыслом проекта*.
### 3.2. Дизайн в стиле стимпанка
Изображений в данной стилистике представлены в [Figma](https://www.figma.com/file/fV3uM1cxZkqWQE0jmEHFeD/Master-Blaster?node-id=0%3A1).
### 3.3. Видеоинструкция
Демо видео работы приложения. Показывающее различные сценарии использования функционала создания карты раскроя.
Продолжительность не более 2-х минут.
### 3.4. SEO для сайта
Поисковая оптимизация в для поисковых роботов Google и Yandex. Требование добавление ключевых слов представленных заказчиком.
### 3.5. DevOps
Написание скриптов для подготовки и развёртывание на сервере. И запуск на тестовом и прод сервере.
<!-- ?SSR? -->