# Гант и требования ## Список требований 1. Отображение в виде задача-подзадача 2. Группировки. например по исполнителям, командам, заказчикм (произвольно) 3. Редактирвоание сроков и после редактирвоания обновляется задача на диаграмме 3.1. можно мышкой таскать задачу 4. Ввод новой задачи/подзадачи 5. Отображение связей (одну задачу можно делать только после окончания другой) 6. Процент выполнения задания 7. Инструмент должен вытягивать до 1 тыс задач 8. Можно ли при вводе задания нового открыть карточку для ввода всех необходимых полей > Комментарии > - если у нас есть способ отображать задача-подзадача вложенностью 2, то мы можем и задавать группировку просто отправляя правильную последовательность данных > - ввод новой подзадачи всегда возможен, вопрос в том, можем ли мы добавить действие на клик по ней ## Таблица по требованиям Пакеты взяты из выборки npm, описанной 07.12.22 на созвоне ### Условные обозначения - ==подсвечены те элементы, которые требуют более тчательной проверки, которая займёт дополнительное время== - 🟡 - частота форков - 💰 - платное решение | Пакет | Score | RU time* | Подзадачи | Вложенность >= 2, группировки | Изменение сроков мышкой | Стрелочки | Процент выполнения | Масштабируемость | Можно ли отследить клик на задачу | Редактирование тела червя | |-------|-------|---------|-----------|-------------------------------|----------------------------|-----------|-------------------|------------------|-----------------------------------|---------------------------| |🟡🟡 [frappe-gantt-react](https://www.npmjs.com/package/frappe-gantt-react)|3 ± 1|--|--|--|+|+|+|==?==|--|--| |💰900$ [gantt-schedule-timeline-calendar](https://www.npmjs.com/package/@leogle/gantt-schedule) - можно тыкать локально, блочит по портам|**8 ± 1**|+|+|+|+|+|+|+!|==на червя, возможно, больше==|+ можно описание и картинку точно| |🟡🟡🟡 [gantt-task-react](https://www.npmjs.com/package/gantt-task-react)|7|+|+|--|+|+|+|+|+|форком| |🟡 [ibm-gantt-chart](https://www.npmjs.com/package/ibm-gantt-chart), aka [ibm-gantt-chart-react](https://www.npmjs.com/package/ibm-gantt-chart-react)|4 ± 2|--|+|+|- только перетаскивание|+|==--==|+|==?==|--| |💰 2500$/год [ej2-react-gantt](https://www.npmjs.com/package/@syncfusion/ej2-react-gantt)|6 ± 1|--|+|+|+|+|+|+|==+==|--| | [react-gantt-elastic](https://www.npmjs.com/package/react-gantt-elastic) - база `gantt-schedule-timeline-calendar`|5 ± 1|+|+|+|==+== потенциально есть, примера нет|--|+|**--**|+|--| |💰 400$ [smart-webcomponents-react](https://www.npmjs.com/package/smart-webcomponents-react)|**8**|+|+|+|+!|+!|+|+|+|--| |🟡 [dhtmlxGantt](https://www.npmjs.com/package/dhtmlx-gantt)|**9**|+|+|+|+|!+|+|+|+|+, хорошее| |💰[fusioncharts](https://www.npmjs.com/package/fusioncharts)|1 ± 1|--|--|--|--|+? не стрелочные|+|==?==|--|--| |[gantt](https://www.npmjs.com/package/gantt)|2 ± 1|--|--|--|--|+|+|==?==|--|--| |[ts-gantt](https://www.npmjs.com/package/ts-gantt)|6 ± 1|+|+|+|+!|--|+|+|==?==|--| |💰 [AnyGantt - JS Gantt charts](https://www.anychart.com/products/anygantt/overview/)|**8**|+|+|+|+|+|+|+|+|--| |💰 [Highcharts](https://www.highcharts.com/demo/gantt)|3 ± 4|--|+|==--==|--|+|+|==--==|==--==|==--==| |💰 [Webix](https://webix.com)|**7 ± 1**|+|+|+|+|+|+|==?==|+|--| Из таблицы видно, что нашим требованиям действительно лучше всего удовлетвояет dhtmlxGantt. ## Нужно ли нам платить за это решение? Есть проект [dhtmlxGantt](https://github.com/DHTMLX/gantt), подходит нам по всем требованиям, примеров много, всё хорошо. Проблема одна - я не могу понять, на сколько он платный. Обычно, когда локально разворачивала платные пакеты, они открывались только на стандартных портах (`8000`, `8080` и `3000`). На остальные ругались и просили платить. А тут и пакет, вроде, в `npm`, и ключа никакого никуда не просит. Локально на экзотических портах разворачивается, работает [Сайт](https://dhtmlx.com/docs/products/dhtmlxGantt/), вроде, красноречиво говорит "я стою 700$ минимум". С другой стороны, репозиторий ни гите и дока говорит, что есть некая "[стандартная версия](https://docs.dhtmlx.com/gantt/desktop__editions_comparison.html)", которая включает в себя достаточно много функционала. ## Что делать? **Вариант 1.** Рискнуть и взять dhtmlxGant и надеяться, что на проде всё пойдёт хорошо и без оплаты. Учитывая, что при оплате они отправляют исходный код библиотеки, то они дуда кладут прям новый функционал. Функционал, который лежит [в репозитории](https://github.com/DHTMLX/gantt) в таком случае должен оказаться доступным при любом случае. Проблема в том, что требования к использованию бесплатной версии - open-source-ность проекта. Однако, не известно, как эти требования проверяются. ![](https://i.imgur.com/GhDHpvN.png) Скачать содержимое репозитория так же можно с сайта по [ссылке](https://dhtmlx.com/docs/products/dhtmlxGantt/download.shtml) (нужно проскроллить). Там же есть сравнение платной и бесплатной версии. **Вариант 2.** Взять что-то более простое и доработать под нас **Вариант 3.** Готова выслушать альтернативные предложения