Данное приложение является свободным и открытым аналогом Zapier, Microsoft Flow и др. подобных сервисов.
В проекте содержатся следующие директории
- api - API адаптера для обработки запросов
- assets - статические файлы, которые можно получить при обращении к серверу (иконки и т.д.)
- cfg - файлы с конфигурацией, всякие файлы, необходимые для приложения
- core - здесь содержатся классы и функции, которые требуются для работы адаптера, например, работа с сервисами, планировщики, хуки и т.д.
- apps - директория со всеми сервисами, которые поддерживает адаптер
- utils - вспомогательные утилиты и приложения для адаптера
- public - директория проекта, в которой содержится index.html файл и собранный bundle веб-интерфейса
- test - директория с тестами на Mocha
- chains.test.js - файл для тестирования сценариев
- thunder - директория с файлами thunder для тестирования API
- ui - стартовая точка React-приложения
- components - собственные реализованные компоненты, которые используются в приложении
- factories - фабрики приложения, тут хранятся React-страницы для конфигурации команд/триггеров
- pages - страницы приложения
- app.jsx - стартовый файл ui
- components.jsx - реэкспорт директории components
- factory.jsx - реализация фабрики, которая возвращает компонент из factories по имени приложения и триггеру
- pages.jsx - реэкспорт директории pages
- main.js - главный скрипт адаптера, который запускает сервер на Express, по корневому адресу отображается собранный веб-интерфейс пользователя
package.json содержит следующие скрипты:
- dev - запускает dev-режим разработки с перезапуском и повторной сборкой при наличии изменений
- dev:ui - режим с запуском сборки при наличии изменений в ui
- dev:server - режим с перезапуском приложения при наличии изменений на стороне сервера
- start - запуск приложения в production режиме
- test - запуск тестов Mocha
- check - запуск eslint
- build - запуск production сборки в webpack
Dev
npm i
npm run dev
Deploy
npm i
npm start
Для облегчения тестирования внутри проекта лежит директория Thunder с коллекцией запросов, которые можно использовать, достаточно только импортировать эту коллекцию к себе в расширение Thunder для VsCode
Для работы с API требуется авторизация пользователя, для этого нужно зайти в раздел Env в Thunder, вбить username и password, сделать запрос на /auth/signUp
, и после на /auth/signIn
, получить accessToken, вписать его в Env разделе, после этого можно делать запросы из Thunder
Маршрут /api/v1/
/auth
/signUp
- Регистрация/signIn
- Вход/accessToken
- Получение токена доступа/logOut
- Выход
/apps/
/
- Список всех приложений/:filter/search/
- Поиск по фильтру/:appName
- Получения информации о приложении по конкретному имени
/applets
/
- Все апплеты/
(POST) - Добавление апплета/:uuid
- Получение апплета по uuid/:uuid
(POST) - Обновление апплета по uuid/:uuid
(DEL) - Удаление апплета по uuid