Расскажите о себе и сути проекта?
Это бот, который собирает дни рождения участников чата. А потом, в правильное время, отправляет в чат поздравление юбиляру. Доброе слово и кошке приятно, а уж человеку, да еще и в группе - тем более. Вдобавок за несколько дней до дня рождения бот пишет в личку другим участникам группы, предупреждает о предстоящем празднике и дает ссылку на секретный чат, где можно обсудить подарок или еще какой сюрприз.
Как появилась идея? Что вдохновило?
В феврале 2021 мне в личку внезапно постучали. Человек представился Валентином и сказал, что нашел меня на одном сайте, где все пытались изображать нетворкинг, а на самом деле просто оставляли свои контакты. Мы обсудили телеграм, ботов, свои эксперименты. Мне повезло, что Валентин работал продактом, и в отличие от меня понимал, чего хотят пользователи. Потом он предложил мне написать бота-конверт для сбора денег на разнообразные цели. Про него я напишу в другой раз, тем более что он недавно ушел в кому.
После успешного запуска конверта, в феврале 2022 Валентин предложил мне следующую авантюру. У него давно был бот, который собирал дни рождения участников чата. Этот бот был написан его хорошим другом Сергеем, работал уже несколько лет и набрал большую аудиторию. Но в последнее время не развивался и требовал постоянного внимания. А потенциал и задумки были большими. Поэтому мы решили переписать все заново (как обычно).
Что вошло в прототип и сколько времени на него было потрачено?
Поскольку желания давно копились, мы решили не делать точную копию предыдущего бота, а сделать сразу по уму. Валентин нарисовал развесистую схему диалогов и настроек. Я посмотрел на эту схему и на несколько месяцев ушел прокрастинировать. Наложилось начало военных действий, поэтому после первых коммитов особо продвижения не было.
Валентин время от времени пинговал меня, я пытался что-то делать, но было сложно. Схема была довольно большая, и не помещалась мне в голову целиком. Пришлось придумать такую структуру кода, которая позволяла работать с переходами по отдельности. Что-то типа конечного автомата, но сильно проще. После выработки этой архитектуры дело пошло проще. Все равно были периоды затишься, но уже не такие глухие. В целом на разработку ушло 2 года, за что я сильно себя ругаю. Вполне мог бы осилить за пару месяцев.
Какой технологический стек вы использовали? Почему?
Python + Django + Postgres + Telebot. Питон и джанга - потому что я хорошо их знаю. И так хватало когнитивной сложности, чтобы не добавлять еще и новый стек. Все остальное стандартно, как и у этого клуба.
Как вы запускались и искали первых пользователей?
У меня была противоположная проблема. На момент готовности релиза в старом боте было огромное количество старых пользователей и чатов. Надо было перейти на новую версию так, чтобы никто не заметил. Было очень волнительно. В целом все удалось, но несоколько косяков все-таки выхватили. В первый день не поздравили именинников. Некорректно перенесли админов чатов - пришлось собирать заново.
С какими самыми неожиданными трудностями пришлось столкнуться?
Основная трудность была в большом объеме диалогов, ветвлений и опций. У меня было два рубежа, на которых я знатно тупил.
Первый рубеж я преодолел, сделав FSM, чтобы можно было описывать переходы в почти декларативном стиле.
Второй рубеж быть в хрупкости кода, когда я боялся менять одно место, чтобы не сломать другое. Выручили, конечно же, юниттесты. Пришлось написать их довольно много, но зато я могу спокойно менять код, не боясь все сломать.
Сколько потратили и заработали? Есть идеи как это можно монетизировать?
Из трат - куча моего времени и виртуалка по 600 рублей в месяц. И пару раз пришлось оплачивать gitlab runners, потому что было много коммитов, каждый с несколькими этапами CI, что вылилось в существенную трату времени сборщиков.
С монетизацией тоже все было не гладко. Валентин придумал, что часть опций бота будут платными. Мы собирались использовать Stripe для приема платежей. И я даже прикрутил работу с ним. Но за два дня до релиза Telegram внезапно поменял правила. Стало нельзя принимать деньги через платежную систему. Только через "звезды" - внутренние фантики телеграмма. Это гугл с эпплом прижали телеграм, видимо пригрозили выкинуть из сторов. Поэтому пришлось переходить на фантики и отдавать 30% платформам. Благо, апи уже в каком-то виде было, поэтому я слог прикрутить его довольно быстро.
Какие планы на будущее?
Планов громадье. Далеко не все функции реализовали. Плюс пользователи подкидывают новые идеи. Уже была первая оплата, поэтому я с оптимизмом смотрю в будущее и надеюсь, что наша работа окупится.
Нужны ли какие-то советы или помощь Клуба?
Мне будет приятно, если вы воспользуетесь ботом - закинете его в свои группы, добавите дни рождения и будете радоваться поздравлениям.
Какой совет вы бы сами могли дать идущим по вашим стопам?
Быть внимательным к себе. Я несколько раз впадал в прокрастинацию и не замечал этого. А достаточно было остановиться и спросить себя - почему именно сейчас я не хочу заниматься проектом. Чаще всего этот какой-то простой ответ, типа "слишком сложно" или "я хз как это сделать". С этим уже можно что-то делать, искать варианты, упрощать, спрашивать совета. Но пока оно не осознаваемо - никуда не продвинется.
И да, вдвоем идти сильно легче, чем одному. Кто-то проседает - второй помогает.
Тут должна быть умная мысль в заключении, но у меня её нет. Зато есть официальный пресс-релиз - https://sobirapp.ru/birthdays/v2 . Велкам!
Если что-то требует уточнения, спрашивайте, расскажу подробнее.
Ого, не ожидала в клубе встретить создателя этого бота! Было интересно прочитать о том, как это было. Пользуемся в одном чате уже больше чем полгода, идея супер и очень удобно! 🌟 Спасибо и успехов в реализации планов!
Классная идея!
пока не добавлял в группы но уже возникли вопросы: