Skip to content
Otabek Abdiraimov
All work

Case study

Personal Finance API — pulling a domain out of a Telegram bot

An income and expense tracker that started as bot handlers and became a FastAPI service with the bot as one of its clients.

Role
Solo project
Timeline
Oct 2025 — Nov 2025
Location
Tashkent, remote
Stack
FastAPIPostgreSQLSQLiteAiogramRender

The problem

I had already built a Telegram bot that tracked income and expenses, but all of its logic lived inside the bot handlers. Nothing else could reuse it, and every new feature meant editing the bot.

What I built

  • Pulled the domain out into a FastAPI service with its own schema for users, transactions and reporting.
  • Rewrote the bot as a client of that API, so the handlers only deal with Telegram while the rules live in one place.

Result

  • 700+ users during testing.
  • Bot and API can now evolve separately; a second client would not need new business logic.