G-FORCE
0.0G
разгон
← ко всем проектам
◐ разбор кейса

Telegram-бот для учёта расходов

Личный финансовый помощник с отчётами и напоминаниями

Pythonaiogram (asyncio)SQLAlchemyPostgreSQLAPSchedulerDocker

01 Задача

Пет-проект для себя: записывать траты одной строкой в Telegram, получать недельные и месячные отчёты по категориям и напоминания о регулярных платежах.

02 Сложности

Разбор произвольного текста вроде «кофе 250» в категорию и сумму. Асинхронность: бот не должен зависать, пока считается отчёт. И развёртывание — хотелось запускать одной командой на любом сервере.

03 Решение

Написал парсер на регулярных выражениях с обучаемым словарём категорий. Все обращения к БД — асинхронные, тяжёлые отчёты считаются в отдельной задаче. Расписание напоминаний на APScheduler, всё завернул в docker-compose вместе с базой.

04 Результат

Бот работает у меня каждый день, деплой на новый сервер занимает одну команду. Отчёт за месяц строится меньше чем за секунду.

Чему меня научил этот проект

Здесь я по-настоящему понял asyncio: чем await отличается от блокирующего вызова и почему одна синхронная строка способна остановить весь бот.


Обсуждение

Комментарии к проекту

Комментарии доступны зарегистрированным пользователям.

Комментариев пока нет — ваш будет первым.

Другие проекты

Система управления задачами с аналитикой

SPA для команд: роли, канбан, графики продуктивности в реальном времени

Интерактивная доска для команды

Совместное рисование и заметки на Canvas через WebSocket

E-commerce платформа с рекомендациями

Каталог, корзина, оплата и блок «вам может понравиться»