Files
Balance/README.md
T
wt da9e17f45f
Android CI / Build and Test (push) Failing after 13m25s
iOS CI / Build and Test SwiftUI App (push) Canceled after 0s
Build Unsigned iOS and macOS Apps / Build Unsigned iOS IPA (push) Canceled after 0s
Build Unsigned iOS and macOS Apps / Build macOS ZIP (push) Canceled after 0s
added AGENTS.md and docs in root dir
2026-09-08 13:36:43 +07:00

86 lines
5.6 KiB
Markdown

# Balance — все платформы
Balance — приложение для учёта личных финансов с нативными клиентами
для iOS, macOS, watchOS, Android и встроенным web-интерфейсом, а также
self-hosted сервер синхронизации на Go. В архиве находится
монорепозиторий из трёх независимо собираемых проектов.
| Папка | Назначение | Стек |
| --- | --- | --- |
| [`Balance/`](Balance/README.md) | iOS 17+, macOS 14+ и watchOS 10+ | SwiftUI + SwiftData |
| [`BalanceAndroid/`](BalanceAndroid/README.md) | Android 8.0+ | Kotlin + Jetpack Compose + Room |
| [`BalanceServer/`](BalanceServer/README.md) | Go-сервер авторизации, синхронизации и встроенный web-клиент | Go + SQLite |
Все пять клиентов — iOS, macOS, watchOS, Android и web — используют
одну модель данных и один протокол сервера: операции, пользовательские
категории, бюджеты, удаления, регистрация, вход, refresh-токены и
постраничная двусторонняя синхронизация. Web-интерфейс открывается по
адресу запущенного сервера и не требует отдельной установки.
## Быстрый старт
1. **Поднять сервер** — см. [`BalanceServer/README.md`](BalanceServer/README.md#quick-start-with-docker)
(Docker или локальная сборка Go-бинарника).
2. **Открыть Apple-проект** — `open Balance/Balance.xcodeproj`, см.
[`Balance/README.md`](Balance/README.md).
3. **Собрать Android-приложение** — `cd BalanceAndroid && ./gradlew assembleDebug`,
см. [`BalanceAndroid/README.md`](BalanceAndroid/README.md).
4. В любом клиенте укажите адрес запущенного сервера в настройках
аккаунта, чтобы включить синхронизацию между устройствами.
## Документация
Документация организована на двух уровнях:
- **Корневой уровень** (`docs/`) — то, что относится ко всем платформам
сразу: как устроена система в целом, единый протокол синхронизации,
сквозная модель данных и требования безопасности.
- **Уровень подпроекта** (`Balance/docs/`, `BalanceAndroid/docs/`,
`BalanceServer/docs/`) — детали конкретной платформы: код, схемы,
сборка, деплой.
| Документ | Описание |
| --- | --- |
| [`AGENTS.md`](AGENTS.md) | Правила для AI-агентов и разработчиков, работающих во всём репозитории |
| [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) | Как связаны клиенты и сервер, общая схема системы |
| [`docs/SYNC_PROTOCOL.md`](docs/SYNC_PROTOCOL.md) | Единый протокол синхронизации между всеми клиентами и сервером |
| [`docs/DATA_MODEL.md`](docs/DATA_MODEL.md) | Сопоставление доменных сущностей между платформами |
| [`docs/SECURITY.md`](docs/SECURITY.md) | Сквозные требования безопасности (токены, HTTPS, хранение секретов) |
| [`docs/DEVELOPMENT.md`](docs/DEVELOPMENT.md) | Как собрать, запустить и протестировать все три проекта |
### Документация по подпроектам
- **Apple (`Balance/`):** [`AGENTS.md`](Balance/AGENTS.md) ·
[`docs/ARCHITECTURE.md`](Balance/docs/ARCHITECTURE.md) ·
[`docs/DATA_MODEL.md`](Balance/docs/DATA_MODEL.md) ·
[`docs/SYNC.md`](Balance/docs/SYNC.md) ·
[`docs/DEVELOPMENT.md`](Balance/docs/DEVELOPMENT.md) ·
[`docs/PRODUCT.md`](Balance/docs/PRODUCT.md)
- **Android (`BalanceAndroid/`):** [`AGENTS.md`](BalanceAndroid/AGENTS.md) ·
[`docs/ARCHITECTURE.md`](BalanceAndroid/docs/ARCHITECTURE.md) ·
[`docs/DATA_MODEL.md`](BalanceAndroid/docs/DATA_MODEL.md) ·
[`docs/SYNC.md`](BalanceAndroid/docs/SYNC.md) ·
[`docs/DEVELOPMENT.md`](BalanceAndroid/docs/DEVELOPMENT.md) ·
[`docs/PRODUCT.md`](BalanceAndroid/docs/PRODUCT.md)
- **Server (`BalanceServer/`):** [`AGENTS.md`](BalanceServer/AGENTS.md) ·
[`docs/ARCHITECTURE.md`](BalanceServer/docs/ARCHITECTURE.md) ·
[`docs/API.md`](BalanceServer/docs/API.md) ·
[`docs/DATA_MODEL.md`](BalanceServer/docs/DATA_MODEL.md) ·
[`docs/SYNC.md`](BalanceServer/docs/SYNC.md) ·
[`docs/SECURITY.md`](BalanceServer/docs/SECURITY.md) ·
[`docs/DEVELOPMENT.md`](BalanceServer/docs/DEVELOPMENT.md) ·
[`docs/DEPLOYMENT.md`](BalanceServer/docs/DEPLOYMENT.md) ·
[`docs/PRODUCT.md`](BalanceServer/docs/PRODUCT.md)
## Структура репозитория
```text
Balance/
├── AGENTS.md # общие правила для агентов по всему репо
├── README.md # этот файл
├── docs/ # сводная документация по всем платформам
├── Balance/ # Xcode-проект: iOS + macOS + watchOS
├── BalanceAndroid/ # Android (Gradle/Kotlin)
└── BalanceServer/ # Go-сервер + встроенный web-клиент
```