# Kazier Kazier est un coffre-fort de documents personnel, local-first. Le client Android reflète le SAF dans une base Room et pousse les métadonnées de ses mutations via un outbox transactionnel vers le serveur Go/PostgreSQL — pas d'upload physique, pas de cloud-dépendance. [![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](LICENSE) Disponible sur [thirdshop.fr](https://thirdshop.fr/en/applications/kazier/) ## Setup ```bash # Backend (Go + PostgreSQL) mise up_backend # Frontend (Android, build debug APK) mise up_mobile # émulateur par défaut mise up_mobile device # sur un appareil connecté # Tests cd backend && go test ./... cd mobile-kotlin && ./gradlew :app:testDebugUnitTest ``` ## Où regarder | Zone | Fichiers clés | |------|---------------| | API contract | `docs/api-v1.md` — contrat HTTP autoritatif | | Backend entry | `backend/cmd/server/main.go` — wiring gin + routes | | Sync outbox | `mobile-kotlin/.../features/sync/OutboxSyncWorker.kt` — worker WorkManager → `POST /sync/ops` | | SAF scan | `mobile-kotlin/.../features/sync/DeviceSync.kt` — two-pass walk SAF ↔ Room | | Room DB | `mobile-kotlin/.../data/local/AppDatabase.kt` — version 7, migrations, DAO | | API Retrofit | `mobile-kotlin/.../data/remote/ApiService.kt` — interface Retrofit (contrat client) |