MacBot - Телеграм бот для проведения сессий психологами с использованием метафорических ассоциативных карт.
Демонстрацию возможностей бота можно посмотреть по ссылке
В боте есть две базовые роли: клиент и психолог. Сама работа психолога происходит "за кадром" - при аудио или видео звонке. А бот выступает лишь графическим интерфейсом для взаимодействия с картами. Карты хранятся в объектном хранилище. В данном случае в объектном хранилище Cloud.ru.
- Клиент может перейти по ссылке, сгенерированной психологом для конкретной сессии, для начала сессии
- Клиент может посмотреть общую информацию о методике
- Клиент может оставить обратную связь, воспользовавшись формой, открывающейся как Telegram mini app.
- Психолог может посмотреть, какие колоды доступны сейчас для использования (загружены в облако) и поссмотреть каждую из них
- Может посмотреть историю сессий: общим списком, по имени клиента, а так же загрузить историю в формате Excel таблицы.
- Начать новую сессию.
Каждая сессия в боте - это период, когда клиент прошел по ссылке и психолог нажал на кнопку "Начать сессию". Сначала психолог выбирает параметры сессии:
- Продолжительность (сейчас в стадии //todo - пока существует номинально)
- Колода - выбирает какую колоду будет использовать во время сессии
- Сколько карт показать - выбор базового количества карт для сессии. Сами карты будет выбирать клиент, но во время сессии можно будет показать дополнительные карты.
- Создать ссылку - генерируется уникальная ссылка для приглашения клиента
После того, как клиент присоединился к сессии и психолог ее запустил, у клиента появляется клавиатура с номерами карт. Нажатием на номер клиент выбирает указанное количество карт. Выбор можно менять до завершения этого процесса. При нажатии на номер рядом с числом появляется значок ✅ (ограничения Телеграм в том, что если много кнопок в клавиатуре, то не все символы видны, из-за этого там, где в колодах много карт галочку не видно, вместо нее ставится многоточие). После завершения выбора клиент нажимает на соответствующую кнопку и ожидает демонстрацию карт. В этот момент у психолога появляется сообщение об окончании выбора карт и кнопка "Отправить карту". При нажатии отправляется карта - картинка, как клиенту, так и психологу. Далее все повторяется, пока идет сессия. Если выбранные карты кончились, а есть необходимость показать еще одну, тогда можно отправить еще случайную карту. Таких карт может быть сколько угодно, в пределах объема колоды. По завершении сессии психолог нажимает на кнопку "Завершить сессию", история сообщений в чатах очищается, параметры сессии сохраняются.
Для запуска бота требуется:
- Установить библиотеки из списка ниже
- В файле
appsettings.json
прописать нужные данные: токен бота, ключи для объектного хранилища. - В файле
ObjectStorageService.cs
изменить значение поля_bucketName
на ваше -> предвварительно требуется наличие аккаунта на Cloud.ru и созданное объектное хранилище в нем + загруженные колоды.
- Библиотека Telegram.Bot - Для взаимодействия с Telegram Bot Api
- Библиотека AWSSDK.S3 - Для взаимодействия с объектным хранилищем
- Библиотека EPPlus - Для создания Excel отчетов
- Библиотеки Microsoft.EntityFrameworkCore.Sqlite и Microsoft.EntityFrameworkCore.Tools - Для Взаимодействия с БД SQLite
- Библиотека SimpleLoggerByAlgmironov - Для логирования