Дисклеймер: это не руководство по созданию бота - конечный продукт не завершён. Здесь описана проблематика и предложение поддержать разработку кодом. Я не разработчик и не стремлюсь им быть, поэтому в тексте вполне могут быть технические неточности, так как написание кода это скорее хобби. Данный текст может быть интересен начинающим разработчикам Мир по умолчанию несправедлив - одни со старта получают карт-бланш и золотую ложку во рту, другие всю жизнь выживают. Между этими двумя мирами, которые, кажется, никогда не пересекаются, есть средний класс, который вроде бы уже и не выживает, иногда ездит в Турцию отдыхать, но основное время жизни отводиться зарабатыванию денег. Такие люди по-своему понимают нуждающихся и, вроде бы, готовы помогать, но транзакционно - скинуть денег, отдать вещь. Меньше всего обыватель хочет потратить несколько часов на такую благотворительность. Однако, иногда люди желают отдавать всё свободное время для помощи тем, кто попал в трудную жизненную ситуацию и в таких условиях зарождаются инициативные группы. В эти группы могут входить люди разного достатка и нет какой-то корреляции по профессии, но зачастую у них есть одна общая черта, бич. Им очень нужно дружно работать с данными. Как правило - инструментом выбирается Google Sheets, рисуется красивая структура, а дальше случается небольшой филиал ада.  Дело в том, что эффективность работы с таблицами (тут не принципиально - Excel или Google Sheets) группой людей соответствует самому низкому уровню навыка среди участников группы: любую красивую структуру ломает неаккуратный Ctrl+V, а так как люди работают за идею нажатий на кнопки они не считают. Следующая итерация таблички подразумевает один из вариантов: Есть только несколько избранных, которые следят за таблицей (ни разу не видел) Происходит обучение по работе с таблицами как с инструментом Иными словами - это прям больно. Пару месяцев назад я внезапно обнаружил у себя силы присоединиться к команде волонтёров, которые занимаются тем, что помогают беженцам вещами, советом и делом. Вошёл я в команду на правах человека, который поможет с организацией информационной работы в гугл-табличках - там содержалась информация по запросам от нуждающихся и предложениями от жертвователей. По началу всё было довольно безобидно, но чем дальше тем больше проблем возникало Первое, что пришло мне в голову - нужно упорядочить всё это безобразие в БД. В голове уже нарисовалась схема таблиц, кто куда и зачем ходит. Прекрасно, подумал я, но что будет управлять данными в этой базе? Примерно неделю я систематически вечерами изучал что можно взять из готовых решений. Больше всего надежд я возлагал на Wordpress и его плагины, попробовал в том числе и WooCommerce. Мельком глянул Yii. Кучку SaaS решений типа SUITECRM и Tild`ы я не обошёл стороной (сейчас, задним числом, я думаю, что раз уж взглянул тильду, то можно было и другие платные посмотреть). В результате я получил неудовлетворительный результат - всё и везде заточено под лиды и процесс реализации услуг, а у меня тут совсем другой запрос. Хорошо, значит это не CRM, а что-то другое. Всё ещё хочется нечто бесплатное, потому что, хоть бюджет и есть - совершенно не хочется предлагать что-то, что в практике окажется менее удобным чем таблицы К этому моменту у меня уже начала складываться единая концепция кто и как должен взаимодействовать с этой системой Нуждающиеся - никак её не трогают. Запросы собираются кураторами Жертвователи - должны иметь наипростейший способ предлагать свои пожертвования. При этом добавление должно быть с классификацией Кураторы - собираются запросы от нуждающихся, маршрутизируют предложения от жертвователей Администраторы - подчищают БД на предмет плохо записанных данных (несоответствие категорий, пустые предложения) и выдают права Идейно есть и дополнительное условие, что команда волонтёров старается максимально скрывать данные нуждающихся Также уже понятно, что нужна удобная система ввода и менеджмента данных - на тот момент у моей команды появился склад вещей, на котором нужно периодически проводить инвентаризацию Бот показался самым подходящим решением по ряду причин В данной команде и укрупнённом сообществе Телеграм используется как основной мессенджер и нет никаких причин думать что это изменится. В целом, эта платформа переживает очередной рост числа пользователей Этот пункт вытекает из первого - авторизация. Бот работает с конкретными пользователями Телеграм, с теми же самыми с которыми происходит общение (или не происходит вообще) Для взлома БД бота нужно знать где именно она лежит, в отличии от, например сайта на Wordpress (я имею в виду, что при любительском "развёртывании" приложения база лежит примерно на том же адресе что и веб-морда) У Телеграм ботов есть богатый функционал взаимодействия с пользователем (подробнее об этом позже) Резюмируя выше описанное - доступ к этому приложению можно получить с любого устройства с Телеграмом внутри без дополнительного ввода кред и не сильно переживать об утечке данных Для разных команд можно запустить несколько ботов и это будут отдельные системы. Кнопки в окне сообщений в мессенджере - это выглядит солидно. Сразу чувствуется некоторая власть над ситуацией - нажал и что-то там бумкнуло.  Я же решил попробовать использовать inline-запросы: что-то вроде Power Shell внутри. Боты с таким интерфейсом встречаются довольно редко, но самый популярный из них это @gif - отправка GIF анимаций Такой режим смотрит на то, что вводит пользователь и выводит в окне поиска различные айтемы: ссылки или медиафайлы. В чем преимущество таких запросов: в сложных операциях они работают быстрее чем череда ping-pong вопросов бота и ответов пользователя если выполняются однотипные операции - запрос можно скопировать и модифицировать при каждом вводе, а не вводить заново при вводе текстовой информации можно оперативно выводить нужные варианты действий, которые уже будут корректно определены также при вводе запроса пользователю показывается справка что можно ввести дальше - заблудиться сложно Пример готовой реализации интерфейса: Так исторически сложилось, что под новый пет проект я осваиваю новую для себя технологию и медленно прожариваюсь на начальном этапе. Так и здесь - открыл для себя Python, библиотеку aiogram - стандартный стек для ботовода из ютуба. Присыпал сверху MySQL`ом и с этим пирогом потихоньку стал спекаться: нашёл неочевидную особенность работы с классами и неприятные особенности API Телеграма, которые мешали бесшовно использовать выбранный мной интерфейс. В итоге из всех амбиций сделать крутую штуку моего запала хватило на фундамент приложения и реализацию функций управления пользователями и несколько методов работы со справочником У многих, наверняка, есть свои пет проекты - у кого-то пара, у кого-то сотня. Абсолютное большинство из них не заслуживает траты времени на написание статьи и этот бы постигла такая участь, если бы не назначение.  Очень удобно донатить деньги (особенно когда они есть) в различные фонды - бросил и забыл. Но таким небольшим командам гораздо больше денег нужен хороший инструмент чтобы работать. И как мне кажется - IT-сообщество может его дать. Приглашаю Вас поволонтёрить. Ознакомиться с проектом можно тут.  Аналитик