Telegram-бот который помогает легко отслеживать ваши доходы и расходы. Он позволяет добавлять транзакции, классифицировать их, просматривать историю операций и управлять финансовыми данными прямо в Telegram. Бот спроектирован, как удобный и простой инструмент для контроля личных финансов.
- Добавление доходов и расходов: Легко записывайте финансовые операции с указанием суммы и категории.
- Категоризация: Организуйте транзакции по предустановленным или пользовательским категориям.
- История операций: Просмотр детальной истории доходов и расходов.
- Статистика и отчёты: Анализ расходов по категориям за период.
- Экспорт данных: Выгрузка транзакций в CSV-формат.
- Визуализация: Графическое представление финансовой статистики.
- Гибкое хранение данных: Поддержка SQLite (пока для лёгких сценариев) и планируется PostgreSQL (при высокой нагрузке).
- Контейнеризация: Готовые Docker-образы для быстрого развёртывания.
- Фреймворк:
aiogram
- Асинхронное программирование:
asyncio
- Управление состоянием:
aiogram.fsm
,RedisStorage
- База данных:
aiosqlite
SQLAlchemy
+PostgreSQL
- Драйвер БД:
asyncpg
(для PostgreSQL) - Redis:
redis-py
(для хранения состояния сессий) - Логирование:
logging
- Контейнеризация: Docker
- Визуализация:
matplotlib
(для генерации графиков в разработке)
- /export_csv — выгрузка данных в CSV
- /plot — график расходов за период
- Расширенная аналитика с группировкой по тегам
- Мультивалютная поддержка
- Автоматическая категоризация трат
- Ежемесячные отчёты по email
-
Клонируйте репозиторий:
git clone <ссылка_на_репозиторий> cd <директория_репозитория>
-
Настройте переменные окружения:
- Создайте
.env
файл на основе.env.example
- Указать
BOT_TOKEN
- Настроить параметры Redis и БД
- Создайте
-
Дать права на исполнение:
chmod +x entrypoint.sh
-
Запустите сервисы:
docker compose up -d --build
-
Проверка работы бота:
docker compose logs -f bot
- Подключиться к shell контейнера:
docker compose exec bot bash
Главное меню | Меню старт |
---|---|
![]() |
![]() |
Статистика | История операций |
---|---|
![]() |
![]() |
Выбор периода |
---|
![]() |
Распространяется под лицензией MIT