Необходимо сделать модуль для 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://github.com/micksatana/node-nested-set
https://github.com/orxtime/nestedsetsjs
https://github.com/fremail/sequelize-nested-set
и многие другие.
Также есть множество статей с описанием этого метода хранения дерева, например эта 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.
Если возникнут вопросы по вариантам реализации деталей задачи или предложения по более оптимальным решениям - сразу пишите в чат, обсудим.
Более подробное описание задачи - в приложенном файле с техническим заданием.
-- При успешном выполнении данной задачи - можем передавать вам дальнейшие доработки как по этому проекту, так и другие аналогичные задачи (бекенд и фронтенд).