Tyzenhaus — бот для упрощения взаимных долгов в Telegram-чатах
Как Splitwise, только проще и в Telegram.
Полуминутный ролик, описывающий суть:
Проблема
До вспышки уханьского коронавируса мы с друзьями, бывало, путешествовали. Типичные евротрипы, когда забукано 4 перелёта, 10 поездов и автобусов, 7 ночлегов в 3-х странах. С этими платежами проблем почти нет: обычно всё дублируется на электропочту, поднять историю и выяснить кто кому сколько должен не сложно.
Проблемы начинаются в пути. Купили перекусить в аэропорту — кто-то оплатил чей-то кофе. В сувенирной лавке отказались принимать карту — и вот уже я покупаю магнит кому-то за налик. В магазине купили продуктов — платил кто-то один. Взяли пиццу на всех — платил другой. Доехали до следующей страны — а там вообще не евро.
Бесконечный поток "потом сочтёмся".
Первый раз не сочлись. Разобрались с основными платежами, а на остальное забили. Во второй раз каждый был сам за себя, и это тоже не сработало. В третий раз мы сохраняли чеки, иногда подбивали промежуточные долги. В четвёртый — вопользовались какой-то прилагой, может даже Splitwise. Помню, она была далеко не идеальная и хотела подписку за снятие ограничений и сокрытие рекламы. На пятый раз я бы купил ту подписку, но проблема на некоторое время ушла в прошлое вместе с евротрипами и большими компаниями.
Но этим летом снова стала актуальной.
Проект
Я решил написать бота для решения этой проблемы. Ведь всё равно мы все сидим в Telegram!
Потратил пару сотен часов на разработку, логотип и "промо-видео" в расслабленном режиме по вечерам. Всё сам.
Ключевые моменты:
- Это Telegram-бот
- Его нужно добавить в чат и зарегистрировать в нём участников транзакций (ограничения Telegram Bot API не позволяют получить полный список участников)
- Для транзакции нужно задать сумму, валюту, описание и, собственно, участников
- Поддерживаются любые валюты
- Tyzenhaus упрощает взаимные долги и сводит количество платежей для полного расчёта к минимуму
- Есть русский и английский языки
Бот написан на Kotlin, запущен на бесплатном Heroku, поэтому иногда отвечает с ощутимой задержкой.
Планы на будущее
- Добавить возможность быстрого сброса всех долгов в ноль
- Добавить возможность вывода всех транзакций (платежей) и поиска по ним
- Добавить возможность прикрепления чеков к транзакциям
- Переехать на нормальный VPS
- Прикрутить статистику и мониторинг
- Сделать лендинг с подробностями (и документацией?)
- Добавить возможность посылать багрепорты и суппорт-реквесты прямо через бота
Благодарю за внимание!
Ссылка на бота: https://t.me/TyzenhausBot