Модуль для CMS Keystone (Node.js, GraphQL) с реализацией Nested Set

23 000 руб. за проект
22 ноября 2021, 09:23 • 2 отклика • 25 просмотров
Необходимо сделать модуль для CMS Keystone JS (keystonejs.com) (Node.js on backend, React on frontend, используемые технологии: JavaScript, TypeScript, GraphQL, JSX), создающий новый тип поля для хранения древовидных структур в формате Nested Set Model https://en.wikipedia.org/wiki/Nested_set_model

Интерпретация такой древовидной структуры данных уже реализована во многих opensource-библиотеках на JavaScript и TypeScript (и на других языках тоже), например:
и многие другие.

Также есть множество статей с описанием этого метода хранения дерева, например эта https://devacademy.ru/article/nested-set эта https://habr.com/ru/post/153861/ и эта http://zabolotnev.com/mysql-nested-sets

Для написания модуля можно взять за основу одну из приведённых выше выше библиотек, найти другой готовый алгоритм либо использовать их как образец для реализации собственного алгоритма.

Образец создания модуля с кастомным полем для Keystone можно найти здесь https://github.com/keystonejs/keystone/tree/main/examples/custom-field а также в соседних папках и в https://github.com/keystonejs/keystone/tree/main/examples-staging тоже есть примеры с реализацией полей.

Ещё примеры реализации модуля с новым типом поля для CMS Keystone можно посмотреть здесь: https://github.com/keystonejs-contrib/k6-contrib/tree/main/packages/fields-dimension

и тут https://keystone-next-docs-8hyk541ju-keystonejs.vercel.app/docs/community

Собственно, по аналогии с этими примерами нужно сделать собственный модуль с реализацией нового типа поля, хранящего древовидную структуру в формате Nested Set.

Более подробное описание задачи - в приложенном файле с техническим заданием.

Если указанный бюджет вам кажется слишком низким для предполагаемого объема работы, то можете привести аргументы по увеличению бюджета, обсудим.

При успешном выполнении данной задачи - можем передавать вам дальнейшие доработки как по этому проекту, так и другие аналогичные задачи (бекенд и фронтенд).

Если возникнут вопросы по вариантам реализации деталей задачи или предложения по более оптимальным решениям - пишите, обсудим.
Файлы