Проект: Бот Собирап ДР  Публичный пост
19 июня 2024  400
Держи долор
Бот Собирап ДР
https://t.me/sobirapp_bot

Расскажите о себе и сути проекта?

Это бот, который собирает дни рождения участников чата. А потом, в правильное время, отправляет в чат поздравление юбиляру. Доброе слово и кошке приятно, а уж человеку, да еще и в группе - тем более. Вдобавок за несколько дней до дня рождения бот пишет в личку другим участникам группы, предупреждает о предстоящем празднике и дает ссылку на секретный чат, где можно обсудить подарок или еще какой сюрприз.

Как появилась идея? Что вдохновило?

В феврале 2021 мне в личку внезапно постучали. Человек представился Валентином и сказал, что нашел меня на одном сайте, где все пытались изображать нетворкинг, а на самом деле просто оставляли свои контакты. Мы обсудили телеграм, ботов, свои эксперименты. Мне повезло, что Валентин работал продактом, и в отличие от меня понимал, чего хотят пользователи. Потом он предложил мне написать бота-конверт для сбора денег на разнообразные цели. Про него я напишу в другой раз, тем более что он недавно ушел в кому.

После успешного запуска конверта, в феврале 2022 Валентин предложил мне следующую авантюру. У него давно был бот, который собирал дни рождения участников чата. Этот бот был написан его хорошим другом Сергеем, работал уже несколько лет и набрал большую аудиторию. Но в последнее время не развивался и требовал постоянного внимания. А потенциал и задумки были большими. Поэтому мы решили переписать все заново (как обычно).

Что вошло в прототип и сколько времени на него было потрачено?

Поскольку желания давно копились, мы решили не делать точную копию предыдущего бота, а сделать сразу по уму. Валентин нарисовал развесистую схему диалогов и настроек. Я посмотрел на эту схему и на несколько месяцев ушел прокрастинировать. Наложилось начало военных действий, поэтому после первых коммитов особо продвижения не было.

Валентин время от времени пинговал меня, я пытался что-то делать, но было сложно. Схема была довольно большая, и не помещалась мне в голову целиком. Пришлось придумать такую структуру кода, которая позволяла работать с переходами по отдельности. Что-то типа конечного автомата, но сильно проще. После выработки этой архитектуры дело пошло проще. Все равно были периоды затишься, но уже не такие глухие. В целом на разработку ушло 2 года, за что я сильно себя ругаю. Вполне мог бы осилить за пару месяцев.

Какой технологический стек вы использовали? Почему?

Python + Django + Postgres + Telebot. Питон и джанга - потому что я хорошо их знаю. И так хватало когнитивной сложности, чтобы не добавлять еще и новый стек. Все остальное стандартно, как и у этого клуба.

Как вы запускались и искали первых пользователей?

У меня была противоположная проблема. На момент готовности релиза в старом боте было огромное количество старых пользователей и чатов. Надо было перейти на новую версию так, чтобы никто не заметил. Было очень волнительно. В целом все удалось, но несоколько косяков все-таки выхватили. В первый день не поздравили именинников. Некорректно перенесли админов чатов - пришлось собирать заново.

С какими самыми неожиданными трудностями пришлось столкнуться?

Основная трудность была в большом объеме диалогов, ветвлений и опций. У меня было два рубежа, на которых я знатно тупил.

Первый рубеж я преодолел, сделав FSM, чтобы можно было описывать переходы в почти декларативном стиле.

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

Сколько потратили и заработали? Есть идеи как это можно монетизировать?

Из трат - куча моего времени и виртуалка по 600 рублей в месяц. И пару раз пришлось оплачивать gitlab runners, потому что было много коммитов, каждый с несколькими этапами CI, что вылилось в существенную трату времени сборщиков.

С монетизацией тоже все было не гладко. Валентин придумал, что часть опций бота будут платными. Мы собирались использовать Stripe для приема платежей. И я даже прикрутил работу с ним. Но за два дня до релиза Telegram внезапно поменял правила. Стало нельзя принимать деньги через платежную систему. Только через "звезды" - внутренние фантики телеграмма. Это гугл с эпплом прижали телеграм, видимо пригрозили выкинуть из сторов. Поэтому пришлось переходить на фантики и отдавать 30% платформам. Благо, апи уже в каком-то виде было, поэтому я слог прикрутить его довольно быстро.

Какие планы на будущее?

Планов громадье. Далеко не все функции реализовали. Плюс пользователи подкидывают новые идеи. Уже была первая оплата, поэтому я с оптимизмом смотрю в будущее и надеюсь, что наша работа окупится.

Нужны ли какие-то советы или помощь Клуба?

Мне будет приятно, если вы воспользуетесь ботом - закинете его в свои группы, добавите дни рождения и будете радоваться поздравлениям.

Какой совет вы бы сами могли дать идущим по вашим стопам?

Быть внимательным к себе. Я несколько раз впадал в прокрастинацию и не замечал этого. А достаточно было остановиться и спросить себя - почему именно сейчас я не хочу заниматься проектом. Чаще всего этот какой-то простой ответ, типа "слишком сложно" или "я хз как это сделать". С этим уже можно что-то делать, искать варианты, упрощать, спрашивать совета. Но пока оно не осознаваемо - никуда не продвинется.

И да, вдвоем идти сильно легче, чем одному. Кто-то проседает - второй помогает.

Тут должна быть умная мысль в заключении, но у меня её нет. Зато есть официальный пресс-релиз - https://sobirapp.ru/birthdays/v2 . Велкам!

Если что-то требует уточнения, спрашивайте, расскажу подробнее.

4 комментария 👇

Ого, не ожидала в клубе встретить создателя этого бота! Было интересно прочитать о том, как это было. Пользуемся в одном чате уже больше чем полгода, идея супер и очень удобно! 🌟 Спасибо и успехов в реализации планов!

  Развернуть 1 комментарий

@alias, спасибо за обратную связь, приятно слышать.

  Развернуть 1 комментарий
Anton Zhornikov Metal 3d print, Wi-Fi, LTE developer 19 июня в 09:54

Классная идея!
пока не добавлял в группы но уже возникли вопросы:

  1. На сайте не увидел отличий PRO от бесплатного
  2. Наверно для рабочих чатов неактуально, но для чатов друзей хорошо было бы еще добавлять напоминания о ДР детей/супругов. Наверно из-за привязки в БД др к айди (раз можно удалить свой др из всех групп) такого функционала нет?
  Развернуть 1 комментарий

@storm21110, спасибо за идеи

  1. передам товарищу, посмотрит
  2. дополнительные ДР и прочие события - в планах, сделаем чуть позже.
  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб