-
Notifications
You must be signed in to change notification settings - Fork 0
Roadmap
бот принимает команду /start после чего начинает реагировать триггеры
триггерами являются:
- список специальностей (сейчас идентичен списку в опросе)
- список возможных «опытов» (без опыт, 1 год и так далее; тоже взят из опроса)
- ключевую фразу 'Искать людей в команду'
поскольку API Telegram это RESTful API, оно stateless, поэтому хранение состояния организовано на стороне бэкенда:
каждый поиск пользователя сохраняется в базу данных по его уникальному идентификатору пользователя в tg (chat_id) (это означает что если бот добавить в канал, он может начать работать неожиданным образом) на каждом шаге последовательно проверяется наличие полей в сохраненном поиске юзера: специальность и опыт, при наличии значений в обоих полях производится опрос базы участников и выводится сообщение (если длина списка не превышает 4096 символов) либо сообщения (если длина слишком большая для одного сообщения в телеграме).
в зависимости от состояния поиска юзера ему доступны кнопки меню:
- если поиск не существует (юзер пришел впервые либо уже завершил успешно предыдущий поиск либо сбросил его), он имеет управляющую кнопку «Искать людей в команду»
- если поиск существует и еще не выбрана специальность, меню наполняется кнопками специальностей из списка выше + добавляется кнопка Сброса поиска
- если поиск существует и специальность сохранена - меню наполняется кнопками опытов из списка выше + добавляется кнопка Сброса поиска
таким образом юзерфлоу:
- юзер всегда может сбросить поиск
- юзер в рамках поиска может последовательно выбрать из списка специальностей и затем из списка опытов, после чего получается результат
На этапе отсутствия поиска добавить в меню кнопку «Список всех проектов», которая просто выведет в сообщении/сообщениях краткую информацию по имеющимся проектам, и кнопку меню «Поиск вакансий в проектах», которая выведет в меню список специальностей, выбор одной из которых выведет список проектов, на которых вакантны места, соответствующие этой специальности
- интерфейс анкетирования участника. требует аутентификацию через telegram. позволяет анкетироваться участнику аналогично тому, как это сейчас слелано в гуглтаблице
- то же но для редактирования своей анкеты
- интерфейс поиска участников. аутентификация опциональна. сложный фильтр по имеющимся параметрам (специальность + опыт + статус занятости + доступность в часах + образование + город + таймзона)
- интерфейс создания проекта. требует аутентификацию через telegram. позволяте описать новую идею, заполнив набор полей (название + описание + вакантные специальности + бог его знает что еще)
- то же но для редактирования проекта.
- интерфейс поиска проектов. сложный фильтр по параметрам проекта
на этом же этапе в бота, в этапы вывода результатов любых поисков предлагается добавить дополнительные ссылки на более сложный поиск (КАК ВАРИАНТ: генерировать результаты ЛЮБЫХ поисков на сайте и всегда возвращать пользователю ссылку на результаты)
на этом же этапе в бота добавить функционал создания топиков в сообществе в TG при создании проекта на сайте (ОПЦИОНАЛЬНО: с премодерацией в админке сайта)
- лайки/дизайлки на проектах
- какие-то описательные фичи на проектах (история разработки, пост-мортемы, комментирование)
- рейтинги польозвателей по каким-то параметрам (некая активность в сообществе)
- возможность инициировать рассылку через бота («оповестить всех незанятых специалистов нужной компетенции»)
- возможность оставить заявку на участие в проекте