Skip to content
jingleMyBells edited this page May 19, 2023 · 2 revisions

Бот для портфолио

Текущая реализация:

бот принимает команду /start после чего начинает реагировать триггеры

триггерами являются:

  • список специальностей (сейчас идентичен списку в опросе)
  • список возможных «опытов» (без опыт, 1 год и так далее; тоже взят из опроса)
  • ключевую фразу 'Искать людей в команду'

поскольку API Telegram это RESTful API, оно stateless, поэтому хранение состояния организовано на стороне бэкенда:

каждый поиск пользователя сохраняется в базу данных по его уникальному идентификатору пользователя в tg (chat_id) (это означает что если бот добавить в канал, он может начать работать неожиданным образом) на каждом шаге последовательно проверяется наличие полей в сохраненном поиске юзера: специальность и опыт, при наличии значений в обоих полях производится опрос базы участников и выводится сообщение (если длина списка не превышает 4096 символов) либо сообщения (если длина слишком большая для одного сообщения в телеграме).

в зависимости от состояния поиска юзера ему доступны кнопки меню:

  • если поиск не существует (юзер пришел впервые либо уже завершил успешно предыдущий поиск либо сбросил его), он имеет управляющую кнопку «Искать людей в команду»
  • если поиск существует и еще не выбрана специальность, меню наполняется кнопками специальностей из списка выше + добавляется кнопка Сброса поиска
  • если поиск существует и специальность сохранена - меню наполняется кнопками опытов из списка выше + добавляется кнопка Сброса поиска

таким образом юзерфлоу:

  • юзер всегда может сбросить поиск
  • юзер в рамках поиска может последовательно выбрать из списка специальностей и затем из списка опытов, после чего получается результат

Предлагается добавить в следующем приближении:

На этапе отсутствия поиска добавить в меню кнопку «Список всех проектов», которая просто выведет в сообщении/сообщениях краткую информацию по имеющимся проектам, и кнопку меню «Поиск вакансий в проектах», которая выведет в меню список специальностей, выбор одной из которых выведет список проектов, на которых вакантны места, соответствующие этой специальности

Сайт:

предлагается реализовать сайт со следующими интерфейсами В ПЕРВОМ ПРИБЛИЖЕНИИ:

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

на этом же этапе в бота, в этапы вывода результатов любых поисков предлагается добавить дополнительные ссылки на более сложный поиск (КАК ВАРИАНТ: генерировать результаты ЛЮБЫХ поисков на сайте и всегда возвращать пользователю ссылку на результаты)

на этом же этапе в бота добавить функционал создания топиков в сообществе в TG при создании проекта на сайте (ОПЦИОНАЛЬНО: с премодерацией в админке сайта)

Сайт во втором приближении:

  • лайки/дизайлки на проектах
  • какие-то описательные фичи на проектах (история разработки, пост-мортемы, комментирование)
  • рейтинги польозвателей по каким-то параметрам (некая активность в сообществе)
  • возможность инициировать рассылку через бота («оповестить всех незанятых специалистов нужной компетенции»)
  • возможность оставить заявку на участие в проекте