Shekels is a fully asynchronous telegram bot for personal finance built with the aiogram framework.
Shekels is designed to be easy and fast to use out of the box — but even more so once you configure it.
- Send your transactions in plain text
- Add custom categories and money storages
- Set up aliases for caterogies, storages, and currencies to speed things up
- Set up default categories and storages for even more speed
- View current balance, stats, and clean monthly reports
- Exclude categories from balance calculations
- 150+ currencies avaliable
TBS.
- Aiogram 3.x — telegram bot interface;
- PostgreSQL — RDBMS;
- Sqlalchemy 2.x — async ORM for Postgres;
- Pydantic 2.x — data validation via models;
- Poetry — dependency management;
- Redis — persistent storage for temporary data.
(made with dbdiagram.io)
- Get a bot token from BotFather
- Create an
.env
file in the project root with bot token and other variables specified inbot.config.Settings
- Install
poetry
and runpoetry install
command in project root - Activate the virtual environment with
poetry shell
- Run
bot/main.py
withpython3 -m bot.main
from the project root