Несколько месяцев назад я осознал, что я очень мало читаю. С учетом небольшого размера моего города и отсутствия единомышленников в окружении, возникла необходимость в поиске компаньона для обсуждения прочитанных произведений. Сразу встал вопрос: "Где найти человека для обмена впечатлениями?" Попытки в поисковике привели к массе рекламных предложений и громоздким форумам, что меня не устроило.
Возникла идея создать свое место в Telegram, где люди могли бы находить себе единомышленников для обсуждения любых тем. Удивительно, что не существовало подобных ботов (я их усердно искал). Решив, что это замечательная возможность, я принялся за воплощение своей идеи.
Для определения, как должен выглядеть мой бот, я вдохновился функционалом популярного бота для знакомств и бота для поиска образовательных курсов. Из первого я адаптировал удобную систему анкет, а из второго заимствовал структуру разделов, дополнив своими идеями. В результате этого я создал брейн-мапс в приложении Miro.
Вот как она выглядит:
Процесс реализации начался с прохождения курсов по Aiogram, параллельно пытался уже что-то писать. Возникли трудности, но нейросети и форумы меня спасали. Однако появилось осознание, что бот становится слишком громоздким, особенно при наступлении учебного семестра, и я замедлил темп работы, а в конце вообще забил. Позже все-таки вернулся к проекту, но все равно иногда забивая на него на несколько недель, но иногда работая над ним целыми днями.
В результате три месяца ушли на изучение баз данных, конечных автоматов, Redis, серверной архитектуры и других технических аспектов. Сообщество программистов и тематические группы в Telegram стали моим убежищем. После трудного периода удалось завершить разработку и запустить бота на сервере.
Что получилось в итоге?
Вот что:
В итоге получился бот, который позволяет пользователям заполнять анкеты, выбирать интересующие разделы (читать книги, изучать языки, смотреть сериалы, играть в игры и тд) и находить единомышленников. Процесс весьма прост: заполнил анкету, выбрал интересы, начал поиск, лайкнул подходящий профиль, дождался взаимного лайка и получил юзернейм для общения. Все просто и удобно.
Всего на создание бота ушло 3-4 месяца, много усилий (перевалило за 4 тыс. строчек кода, что больше связано с тем, что я плохо пишу) и моментов самозабвенной работы. Однако создавать свой проект было очень прикольно и принесло много опыта.
Если интересно, можно посмотреть, как работает бот: ссылка на бота. Намечена покупка рекламы 3 февраля — посмотрим, что из этого выйдет!