Реалізація бота для фінансового обліку у мобільному додатку
«Витратив 500 на таксі» — одне повідомлення боту, і витрата вже в категорії «Транспорт» з датою та сумою. Швидше, ніж відкривати будь-який нативний додаток. Але переглядати статистику, налаштовувати категорії та встановлювати бюджети — зручніше в мобільному інтерфейсі, а не через команди бота.
Як розділяються завдання між ботом та мобільним додатком
Бот приймає введення: текстові повідомлення з витратами/доходами, голосові нотатки (транскрибуються через Whisper API), швидкі кнопки для частих категорій. Мобільний додаток — це аналітичний шар: графіки, бюджети, історія операцій з фільтруванням, експорт.
Парсинг суми зі довільного тексту — окреме завдання. «П'ятсот за каву», «−1200 продукти», «отримав 45к» — формати різні. На бекенді або використовуємо регулярні вирази з підтримкою кирилиці, або невеликий мовний сервіс (GPT-3.5-turbo з function calling повертає {amount, currency, category, note} стійкіше за regex при різноманітному введенні).
Мобільний додаток працює з уже структурованими даними через REST API:
// iOS, Swift — завантаження операцій за період
struct Transaction: Codable {
let id: UUID
let amount: Decimal
let currency: String
let category: Category
let note: String?
let createdAt: Date
let source: TransactionSource // .bot, .manual, .import
}
func fetchTransactions(from: Date, to: Date) async throws -> [Transaction] {
var components = URLComponents(string: baseURL + "/transactions")!
components.queryItems = [
URLQueryItem(name: "from", value: ISO8601DateFormatter().string(from: from)),
URLQueryItem(name: "to", value: ISO8601DateFormatter().string(from: to)),
]
let (data, _) = try await URLSession.shared.data(from: components.url!)
return try JSONDecoder().decode([Transaction].self, from: data)
}
Аналітика та бюджети
Ключовий екран — розподіл витрат за категоріями за вибраний період. Круговий графік або пончик-графік з деталізацією у список операцій категорії. На Flutter: fl_chart PieChart з touchCallback для навігації.
Бюджет за категорією — це ліміт на місяць з індикатором заповнення. Коли витрати досягають 80% ліміту, бот сам відправляє попередження в чат. Логіка на бекенді: після кожного запису операції пересчитується сума за поточний місяць за категорією та порівнюється з бюджетом.
Регулярні платежі (підписки, аренда) зручно додавати один раз з ознакою recurring — бот буде пропонувати записувати їх у потрібний день автоматично через APScheduler або аналог.
Що входить у мобільну частину
- Дашборд: сума витрат/доходів за поточний місяць, баланс
- Графік витрат за категоріями (pie/donut + bar за днями)
- Історія операцій: пошук, фільтр за категорією та джерелом
- Управління категоріями: створення, іконка, колір, ліміт бюджету
- Ручне додавання операції (не через бота)
- Експорт у CSV
Терміни
3–5 робочих днів для розроблення мобільного додатка. Бот та бекенд оцінюються окремо. Вартість розраховується індивідуально після аналізу вимог.







