Всі проєкти
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
Обговорити схожий проєкт →ДемоGitHub