image image image
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