Skip to content

Latest commit

 

History

History
42 lines (34 loc) · 6.29 KB

README.md

File metadata and controls

42 lines (34 loc) · 6.29 KB

MacBot - Телеграм бот для проведения сессий психологами с использованием метафорических ассоциативных карт.

Демонстрацию возможностей бота можно посмотреть по ссылке

Принцип работы:

В боте есть две базовые роли: клиент и психолог. Сама работа психолога происходит "за кадром" - при аудио или видео звонке. А бот выступает лишь графическим интерфейсом для взаимодействия с картами. Карты хранятся в объектном хранилище. В данном случае в объектном хранилище Cloud.ru.

Возможности клиента:

  • Клиент может перейти по ссылке, сгенерированной психологом для конкретной сессии, для начала сессии
  • Клиент может посмотреть общую информацию о методике
  • Клиент может оставить обратную связь, воспользовавшись формой, открывающейся как Telegram mini app.

Возможности психолога:

  • Психолог может посмотреть, какие колоды доступны сейчас для использования (загружены в облако) и поссмотреть каждую из них
  • Может посмотреть историю сессий: общим списком, по имени клиента, а так же загрузить историю в формате Excel таблицы.
  • Начать новую сессию.

Сессия

Каждая сессия в боте - это период, когда клиент прошел по ссылке и психолог нажал на кнопку "Начать сессию". Сначала психолог выбирает параметры сессии:

  • Продолжительность (сейчас в стадии //todo - пока существует номинально)
  • Колода - выбирает какую колоду будет использовать во время сессии
  • Сколько карт показать - выбор базового количества карт для сессии. Сами карты будет выбирать клиент, но во время сессии можно будет показать дополнительные карты.
  • Создать ссылку - генерируется уникальная ссылка для приглашения клиента

После того, как клиент присоединился к сессии и психолог ее запустил, у клиента появляется клавиатура с номерами карт. Нажатием на номер клиент выбирает указанное количество карт. Выбор можно менять до завершения этого процесса. При нажатии на номер рядом с числом появляется значок ✅ (ограничения Телеграм в том, что если много кнопок в клавиатуре, то не все символы видны, из-за этого там, где в колодах много карт галочку не видно, вместо нее ставится многоточие). После завершения выбора клиент нажимает на соответствующую кнопку и ожидает демонстрацию карт. В этот момент у психолога появляется сообщение об окончании выбора карт и кнопка "Отправить карту". При нажатии отправляется карта - картинка, как клиенту, так и психологу. Далее все повторяется, пока идет сессия. Если выбранные карты кончились, а есть необходимость показать еще одну, тогда можно отправить еще случайную карту. Таких карт может быть сколько угодно, в пределах объема колоды. По завершении сессии психолог нажимает на кнопку "Завершить сессию", история сообщений в чатах очищается, параметры сессии сохраняются.

Запуск бота

Для запуска бота требуется:

  1. Установить библиотеки из списка ниже
  2. В файле appsettings.json прописать нужные данные: токен бота, ключи для объектного хранилища.
  3. В файле ObjectStorageService.cs изменить значение поля _bucketName на ваше -> предвварительно требуется наличие аккаунта на Cloud.ru и созданное объектное хранилище в нем + загруженные колоды.

Технологии, используемые в боте:

  1. Библиотека Telegram.Bot - Для взаимодействия с Telegram Bot Api
  2. Библиотека AWSSDK.S3 - Для взаимодействия с объектным хранилищем
  3. Библиотека EPPlus - Для создания Excel отчетов
  4. Библиотеки Microsoft.EntityFrameworkCore.Sqlite и Microsoft.EntityFrameworkCore.Tools - Для Взаимодействия с БД SQLite
  5. Библиотека SimpleLoggerByAlgmironov - Для логирования