1. Для решения задачи использовал рекурсию. - нахожу root елемент, - фильтрую массив по совпадению id с parentId потомков (getChildren), - добавляю в текущий объект ключ children с массивом потомков, которые также используют рекурсивный метод getChildren для получения своих потомков 2. При создании popup использовал препроцессор sass (включительно с autoprefixer) и потоковый сборщик проектов gulp, а также используя нативный js подписался на событие click для добавления и удаления класса к dom элементу c id main-modal. 3. Для реализации серверной части использовал фреймворк express, для сборки фронтенда использовал webpack, запросы на сервер реализовал с помощью superagent, которые обернул в промисы, параллельные запросы реализовал через promise all, для наглядности параллельности добавил setTimeout.