108 lines
2.9 KiB
Markdown
108 lines
2.9 KiB
Markdown
# Функциональная документация
|
||
|
||
## Обзор
|
||
|
||
Balance Android — локально-first приложение личных финансов.
|
||
|
||
Основные функции:
|
||
- доходы;
|
||
- расходы;
|
||
- категории;
|
||
- бюджеты;
|
||
- аналитика;
|
||
- корректировка баланса;
|
||
- server sync;
|
||
- тёмная/светлая тема;
|
||
- несколько валют.
|
||
|
||
## Обзор
|
||
|
||
Показывает:
|
||
- общий баланс;
|
||
- доходы текущего месяца;
|
||
- расходы текущего месяца;
|
||
- расходы по категориям;
|
||
- последние операции.
|
||
|
||
## Операции
|
||
|
||
Поддерживаются:
|
||
- добавление;
|
||
- редактирование;
|
||
- удаление;
|
||
- поиск;
|
||
- фильтрация по income/expense;
|
||
- дата;
|
||
- сумма;
|
||
- категория;
|
||
- заметка.
|
||
|
||
## Корректировка
|
||
|
||
Пользователь задаёт целевой фактический баланс.
|
||
|
||
Приложение вычисляет:
|
||
|
||
```text
|
||
difference = target - current
|
||
```
|
||
|
||
и создаёт специальную transaction с `isBalanceAdjustment=true`.
|
||
|
||
Корректировка меняет общий баланс, но не включается в периодическую аналитику.
|
||
|
||
## Аналитика
|
||
|
||
Периоды:
|
||
- месяц;
|
||
- 3 месяца;
|
||
- 12 месяцев.
|
||
|
||
Показываются:
|
||
- доходы;
|
||
- расходы;
|
||
- результат;
|
||
- savings rate;
|
||
- структура расходов по категориям.
|
||
|
||
## Бюджеты
|
||
|
||
Можно задать месячный лимит для категории.
|
||
|
||
Бюджет хранится отдельно и синхронизируется с сервером.
|
||
|
||
## Категории
|
||
|
||
Можно создавать и редактировать пользовательские категории.
|
||
|
||
Поддерживаются:
|
||
- имя;
|
||
- тип;
|
||
- иконка;
|
||
- emoji;
|
||
- цвет.
|
||
|
||
Есть 50 вариантов иконок, 30 готовых emoji и палитра из 24 цветов согласно текущему UI.
|
||
|
||
## Настройки
|
||
|
||
- RUB;
|
||
- EUR;
|
||
- USD;
|
||
- SEK;
|
||
- system/light/dark;
|
||
- server URL;
|
||
- регистрация/login/logout;
|
||
- ручная sync;
|
||
- reset sync.
|
||
|
||
## Offline-first
|
||
|
||
Все основные операции выполняются локально через Room. Сервер нужен только для авторизации и межустройственной синхронизации.
|
||
|
||
## Background sync
|
||
|
||
При наличии аккаунта и server URL WorkManager пытается синхронизировать данные примерно каждые 15 минут при наличии сети.
|
||
|
||
Точное время зависит от Android WorkManager и системных ограничений батареи/фоновой работы.
|