AI & Боти · 2025
Budzhetnyk
Telegram-бот для обліку витрат з категоризацією, статистикою, графіками та експортом у Excel.
Клієнт
Open Source
Рік
2025
Стек
PythonaiogramSQLAlchemySQLiteDocker
Про проєкт
Budzhetnyk — персональний Telegram-бот для швидкого обліку витрат. Одне повідомлення — одна витрата. Ніяких зайвих кроків: написав "Кава 50" і бот все зрозумів.
Задача
- Максимально швидке введення витрат прямо в Telegram
- Розумна категоризація без ручного вибору щоразу
- Статистика за будь-який період — день, тиждень, місяць, рік
- Візуалізація через графіки прямо в чаті
- Експорт даних у Excel для подальшого аналізу
- Ліміти з попередженнями при перевищенні бюджету
Рішення
Розробили асинхронного бота на aiogram 3.x з Clean Architecture всередині. SQLAlchemy async для роботи з базою без блокувань, Alembic для міграцій. Бот розгортається в Docker — один docker compose up і готово.
Ключові рішення:
- Розумний парсинг — "Кава 50", "50" або "їжа 120 гривень" — бот розуміє всі формати
- Навчання на виборі — бот запам'ятовує ваші категорії для схожих витрат
- matplotlib + openpyxl — графіки та Excel прямо у Telegram без зовнішніх сервісів
- FSM через aiogram — стани діалогу для підтвердження, вибору категорії, скасування
- Резервне копіювання — автоматичний cron-бекап, зберігає останні 7 копій
Можливості
/stats,/stats week,/stats day,/stats year— статистика/chart pieта/chart bar— кругова діаграма і стовпчики по днях/export— Excel-файл за місяць з підсумками/limit 10000— місячний ліміт з попередженнями на 80% і 100%/undo— скасування останньої витрати
Результат
- Бот обробляє повідомлення за < 200ms
- Розгортання одною командою через Docker
- Покриття тестами: unit + integration через pytest
- Підтримує деплой на Railway, Fly.io або власний VPS