Интегратор сервисов --- приложение для прохождения лабораторных практикумов по курсам ППО, WEB и Тестированию ПО. Приложение представляет собой API Gateway с Web и CLI интерфейсом, а также несколько микросервисов: user, auth и todo. User отвечает за хранение данных пользователей, Auth - за хранение и выдачу токенов, Todo - доска типа Trello. Приложение позволяет легко добавлять новые сервисы и сценарии использования.
Критерий | IFTTT | Zapier | ClickUp | Интегратор сервисов |
---|---|---|---|---|
Позволяет налаживать взаимодействие популярных сервисов между собой | + | + | + | + |
Позволяет объединять пользовательские сервисы | - | - | - | + |
Возможность использования через терминал | - | - | - | + |
Данный проект актуален, так как является фундаментом для прохождения лабораторных практикумов сразу по трем дисциплинам, и позволяет легко вносить правки разного плана: добавление нового сервиса, добавление нового интерфейса взаимодействия с API Gateway, добавление нового сценария использования и т.д.
- Возможность выполнять все сценарии использования каждого сервиса
- Возможность обновлять информацию о пользователях сервисов
- Возможность просмотра оперативной статистики по количеству созданных карточек и пользователей за выбранный временной промежуток
- Возможность авторизоваться
- Возможность просмотра доски сервиса TODO по ссылке
- Возможность просмотра детальной информации о карточках на открытой доске сервиса TODO
- Возможность перейти на страницу сервиса TODO (упрощенная версия Trello)
- Возможность создать/просмотреть/обновить/удалить доску
- Возможность создать/просмотреть/обновить/удалить колонку на доске
- Возможность создать/просмотреть/обновить/удалить карточку на колонке
- Возможность создать/просмотреть/обновить/удалить детальную информацию о карточке
- Возможность лог-аута
- Гость переходит на страницу регистрации.
- Гость вводит свою электронную почту, имя пользователя и пароль.
- Гость нажимает кнопку <<Зарегистрироваться>>.
- Данные отправляются на проверку сервису User.
- Сервис User проверяет уникальность введенных электронной почты и имени пользователя в своей базе данных.
- Сервис User проверяет надежность пароля.
- Если пароль надежен, он хешируется и данные пользователя добавляются в базу данных.
- Гость получает сообщение об успешной регистрации и перенаправляется на страницу авторизации.
- Гость вводит свои логин и пароль.
- Гость нажимает кнопку <<Войти>>.
- Данные отправляются на проверку сервису Auth.
- Сервис Auth отправляет запрос на получение данных пользователя с введенным логином в сервис User.
- Сервис User отправляет данные пользователя, если он есть в базе данных.
- Сервис Auth проверяет совпадение хешей введенного пароля и пароля, хранящегося в базе данных.
- Если пароли совпадают, сервис Auth генерирует токен доступа, и токен обновления для пользователя.
- Сервис Auth сохраняет токен обновления в своей базе данных.
- Токены сохраняются в Cookie, если клиент --- браузер, и в файле, если клиент --- терминал.
- Гость становится Пользователем.
- Гость заходит на сайт, отправляя вместе с запросом свой токен доступа.
- API Gateway отправляет токен доступа на проверку в Auth сервис.
- В случае успеха, Auth сервис возвращает идентификатор пользователя.
- В случае истечения срока действия токена, Auth сервис отправляет запрос на получение токена обновления.
- API Gateway отправляет токен обновления на проверку в Auth сервис.
- В случае успеха, Auth сервис возвращает токен доступа и идентификатор пользователя.
- Клиент обновляет токен доступа в Cookie или файле.
- API Gateway проверяет, хватает ли прав доступа пользователя для выполнения запроса.
- Если прав доступа хватает, API Gateway позволяет выполнить запрос.
- Пользователь заходит на страницу сервиса Todo.
- Пользователь нажимает <<Новая доска>>.
- Пользователь вводит заголовок доски.
- Пользователь отмечает флаг общедоступности доски.
- Пользователь нажимает кнопку <<Создать>>.
- Пользователь переходит на страницу созданной доски.
- Пользователь нажимает <<Новая колонка>>.
- Пользователь вводит заголовок колонки.
- Пользователь нажимает <<Enter>>.
- Пользователь нажимает <<Новая карточка>>.
- Пользователь вводит заголовок карточки.
- (Опционально) Пользователь вводит описание карточки.
- Пользователь нажимает <<Enter>>.
- Карточка создана.
- Администратор заходит в админ-панель.
- Администратор задает временной промежуток.
- Администратор нажимает <<Получить статистику>>.
- Администратор получает информацию о 1) количестве новых пользователей за указанный временной промежуток; 2) количестве созданных карточек за указанный временной промежуток; 3) количестве карточек, созданных новыми пользователями.
Тип приложения:
- WebSPA, CLI
Технологический стек:
- Web Frontend: HTML + CSS + TS (React)
- CLI Frontend: Bubbletea
- Backend: Golang + PostgreSQL