Skip to content

Latest commit

 

History

History
34 lines (30 loc) · 1.32 KB

File metadata and controls

34 lines (30 loc) · 1.32 KB

Architecture

Overview

The project is structured as a Flutter UI app plus modular Dart packages. Sensitive data is encrypted end‑to‑end using AES‑256 (GCM), and persisted as encrypted blobs. Sync providers and backup engines are pluggable.

Modules

  • UI Module (apps/flutter_app)
    • Cross‑platform UI in Flutter (Material 3)
  • Crypto Module (packages/crypto)
    • AES‑256‑GCM encryption/decryption
    • Key derivation (PBKDF2/Argon2 planned)
  • Storage Module (packages/storage)
    • Local encrypted store (file based)
    • Interfaces for alternative stores
  • Sync Module (packages/sync)
    • Provider interface for cloud/NAS sync
    • Conflict resolution strategy (planned)
  • Auth Module (packages/auth)
    • TOTP 2FA generation and verification
  • Backup Module (packages/backup)
    • Scheduled encrypted backups
    • Rotation & retention policy (planned)
  • Core (packages/core)
    • Domain entities, repositories, and orchestration

Data Flow

  1. User inputs data in UI
  2. Core validates and sends to Crypto for encryption
  3. Storage persists encrypted payload
  4. Sync provider (if enabled) uploads encrypted payload
  5. Backup service schedules periodic snapshots

Extensibility

All module interfaces are designed to allow new providers (e.g., S3, WebDAV, NAS SMB) without changing core logic.