Разработать nodejs (bun) скрипт для бэкапа данных из clickup и notion

Цена договорная
14 июня 2024, 13:54 • 2 отклика • 37 просмотров
Необходимо разработать nodejs (bun) скрипт, который будет выполнять следующие функции:
– Собирать все доступные данные из notion (включая файлы на страницах), распределяя их в папки/подпапки согласно структуре проекта и архивировать их в один файл с эффективным уровнем сжатия
– Собирать все задачи существующие из clickup и сохранять их в csv файл (оптимизированный под открытие в excel). Каждая задача обязательно должна содержать все доступные в ней данные, включая кастомные поля
– Выгружать данные архивы в s3-совместимое хранилище яндекса, после чего удаляя оттуда архивы старше 4-х недель

Скрипт должен быть грамотно разбит на несколько отдельных компонентов:
– Создание бэкапа notion. Результат выполнения — архив .zip
– Создание бэкапа clickup. Результат выполнения — архив .zip
– Выгрузка архива с последующим удалением версий старше двух недель. Он должен быть универсальным, работать одинаково и для notion и для clickup и если появятся другие компоненты принимать и их. Это можно сделать передав ему примерно следующий набор аргументов: объект файла (не ссылка в директорию, а именно объект), директория куда сохранить в s3. И скрипт заходи в эту директорию, загружает новый архив, после чего удаляет более старые версии (старше 4 недель).
– Запуск бэкапа. Делает бэкап, после выгружает в s3. Сначала для notion, после для clickup. Каждая группа задач (создание бэкапа – выгрузка – удаление) должны быть в try/catch, чтобы сбой в создании одного бэкапа не создал проблем для последующих. Сама команда запускается вручную, никаких автозапусков самостоятельно подключать не нужно

Дополнительные требования:
– Все необходимые для авторизации в сервисах и подключения к s3 данные обязательно должны лежать в .env файле вместе с .env.example. Для сбора данных из .env используйте библиотеку znv.
– Вы можете взять код из уже существующих решений для бэкапов данных сервисов, которых не мало, но задача в итоге должна решаться ровно так, как указано в задании и без импорта этих библиотек. Еще раз — код можете взять, но использовать их как библиотеки и зависимости — нельзя. Соответственно никаких cron, никаких лишних скриптов и прочего бреда, которым подобные библиотеки обычно наполнены.
– Код должен быть максимально аккуратным и лаконичным, все файлы должны быть в одной нотации, лежать в папке src, компоненты для clickup и notion работать похожим образом (с точки зрения построения кода функции либо синглтона, если будете их использовать).
– Обязательно использовать typescript в качестве языка программирования. Соответственно и типы необходимо использовать по назначению.
– Обязательно использовать bun в качестве пакетного менеджера и среды запуска

В отклике обязательно укажите кол-во времени, которое вам понадобится на разработку проекта, ваш опыт работы с nodejs/typescript и стоимость, за которую готовы выполнить проект.