MoneyNag Bot (@moneynag_bot)-это
Telegram-бот для контроля личных финансов.
За основу я взял асинхронный фреймворк aiogram 3.21., обеспечивающий быструю обработку запросов пользователей. Была важна безопасная авторизация через ZenMoney, поэтому я реализовал полноценный OAuth 2.0 flow с Flask как callback-сервер. Все токены перед сохранением в PostgreSQL шифруются через cryptography.
По функционалу сделал несколько основных блоков.
1. Аналитика и визуализация: бот генерирует графики расходов через matplotlib и pandas, показывает соотношение доходов и расходов.
2. Система бюджетирования: добавил возможность устанавливать месячные лимиты и разделять траты на обязательные и необязательные. Бот сам мониторит расходы и предупреждает при превышении лимита.
Создал функцию «друзей по бюджету», где пользователи могут добавить доверенных лиц и автоматически делиться с ними финансовыми отчетами.
Для автоматизации интегрировал
APScheduler, бот сам отправляет отчеты в срок. Код структурировал по чистой архитектуре: handlers для команд, services для логики, middlewares для контроля доступа. Подготовил полную техническую документацию и скрипты для развертывания на VPS, настроил nginx и gunicorn для продакшена.
Клиент получил готовое к запуску решение с документацией по поддержке и расширению.
Технологический стек:
Python 3.10+, aiogram 3.21, asyncpg
Flask, gunicorn, nginx
PostgreSQL with asyncpg
matplotlib, pandas
cryptography, APScheduler
ZenMoney REST API, OAuth 2.0
aiohttp, asyncio