Merge branch 'main-readme'
This commit is contained in:
53
README.md
Normal file
53
README.md
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
# Wallenc
|
||||||
|
|
||||||
|
Android-приложение для **защищённого хранения** файлов и секретов: шифрование выполняется на устройстве до выгрузки во внешнее хранилище. Собственного backend нет — клиент и API провайдеров (Яндекс.Диск и др.).
|
||||||
|
|
||||||
|
## Задача
|
||||||
|
|
||||||
|
Иерархия **VaultsManager → vault → storage → файлы**:
|
||||||
|
|
||||||
|
| Уровень | Смысл |
|
||||||
|
|---------|--------|
|
||||||
|
| Локальный vault | Один на устройстве, список storage |
|
||||||
|
| Удалённый vault | Подключение по OAuth (Яндекс) |
|
||||||
|
| Storage | Папка/контейнер с файлами, метаданные в Room |
|
||||||
|
| Шифрование | AES на storage; ключ не передаётся провайдеру |
|
||||||
|
| Sync | Журнал изменений, группы storage, фоновые задачи |
|
||||||
|
| Секреты / 2FA | Текстовые записи и TOTP внутри открытого storage |
|
||||||
|
|
||||||
|
Провайдер хранилища и сеть считаются недоверенными. Room хранит только служебные данные (метаданные, токены, журнал sync), не пользовательский контент в открытом виде.
|
||||||
|
|
||||||
|
## Модули
|
||||||
|
|
||||||
|
```
|
||||||
|
app/ — точка входа, Hilt, навигация
|
||||||
|
domain/ — интерфейсы и доменные модели
|
||||||
|
usecases/ — сценарии (шифрование, sync, CRUD storage)
|
||||||
|
domain-vault/ — storage, Яндекс.Диск, Encryptor
|
||||||
|
ui/ — Jetpack Compose
|
||||||
|
infrastructure-android/ — Room, DAO, платформенные реализации
|
||||||
|
vault-contracts/ — контракты для новых провайдеров
|
||||||
|
task-runtime/ — очередь длительных операций
|
||||||
|
```
|
||||||
|
|
||||||
|
**Архитектура:** MVVM + Clean Architecture (`ui` → `usecases` / `domain` → `domain-vault` / `infrastructure-android`).
|
||||||
|
|
||||||
|
## Стек
|
||||||
|
|
||||||
|
Kotlin · Jetpack Compose · Coroutines / Flow · Hilt · Room · WorkManager · клиентское AES
|
||||||
|
|
||||||
|
## Сборка и тесты
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./gradlew assembleDebug
|
||||||
|
./gradlew test
|
||||||
|
./gradlew connectedDebugAndroidTest # устройство или эмулятор
|
||||||
|
```
|
||||||
|
|
||||||
|
JDK 21 рекомендуется (см. toolchain в Gradle).
|
||||||
|
|
||||||
|
## Требования
|
||||||
|
|
||||||
|
- Android с поддержкой Compose
|
||||||
|
- Для OAuth и удалённых vault — сеть
|
||||||
|
- Для фонового шифрования и sync — достаточно RAM под Worker и Room
|
||||||
Reference in New Issue
Block a user