Project

General

Profile

Overview

GetMyBudget — Telegram-бот для обліку доходів і витрат.

Стек:

  • Python 3.12
  • aiogram 3.x
  • SQLAlchemy (async)
  • SQLite (тимчасово), БД винесена за межі репозиторію
  • systemd-сервіс на сервері Hetzner (Ubuntu)

🔹 ПОТОЧНИЙ ФУНКЦІОНАЛ

  1. Додавання транзакцій текстом:
  • -120 їжа
  • +5000 зарплата
  • -45 транспорт 31.01 ; таксі
  • -10 USD підписка
  1. Підтримка дат:
  • DD.MM
  • YYYY-MM-DD
  • якщо дата не вказана — використовується сьогоднішня
  1. Категорії:
  • автоматично нормалізуються (різні апострофи → один ')
  • приводяться до нижнього регістру
  1. Команди:
  • /start — оновлений help-текст
  • /month — статистика за поточний місяць
  • /last_month — статистика за попередній місяць
  1. Контекст:
  • у приватному чаті — рахуються тільки операції користувача - у групі — загальна статистика по чату
  1. UI:
  • використовуються inline-кнопки: - 📊 Поточний місяць - 📅 Попередній місяць
  • reply-клавіатури повністю прибрані (Telegram Desktop кешував їх і ламав UX)

🔹 ВАЖЛИВІ НЮАНСИ

  • БД НЕ лежить у папці проєкту (щоб уникнути перетирання при деплої).
  • Раніше були баги через одночасний запуск двох інстансів бота (systemd + manual run).
  • Баги зі статистикою були повʼязані з перезаписом БД, а не з логікою підрахунку.
  • Порожні повідомлення ("", \u200b) викликають TelegramBadRequest: text must be non-empty.

Issue tracking  Details

open closed Total
Task 1 1 2
Bug 0 0 0

View all issues | Summary