ExpenditureBot — телеграм-бот для учета личных расходов.
Позволяет в удобной форме фиксировать ежедневные расходы по 30+ категориям и средствам платежа. Категории и средства платежа можно легко кастомизировать — добавление новых и редактирование существующих производим тут: finbot/lexicon/lexicon.py
Результаты за любой период можно наглядно отобразить на графиках на дашборде и в админпанели в браузере.
В разработке использованы:
- основная часть: aiogram, PostgreSQL, SQLAlchemy, Redis;
- дашборд, админпанель: Django, Bootstrap;
- графики: Chart.js.
В этом репозитории находится основная часть, дашборд и админпанель можно найти тут.
- Python 3.11;
- aiogram 3.x (фреймворк для создания ТГ-ботов)
- PostgreSQL (база данных);
- SQLAlchemy (обеспечивает связь бота с базой данных)
- Redis (NoSQL база данных для реализации конечного автомата - FSM)
- psycopg3 (драйвер базы данных для SQLAlchemy)
- loguru (библиотека для логирования)
Для установки зависимостей используйте poetry
.
Перед запуском бота нужно переименовать файл .env.example в .env, и указать в .env:
- токен вашего ТГ-бота,
- данные для подключения к вашей БД PostgreSQL,
- хост вашей БД Redis,
- ID вашего ТГ-аккаунта (с которого вы будете посылать боту команды).