# Mitbringsl Eine **Local-First Einkaufslisten-App** – eine schlanke, werbefreie Bring-Alternative. Android-App (Kotlin + Jetpack Compose) mit eigenem **Go-Backend** (PostgreSQL, Docker), OIDC-Login (Google + Generic) und verlustfreiem Sync. > Status: **Work in Progress / MVP**. ## Was das Projekt kann (Ziel) - 📝 Einkaufslisten anlegen, Items verwalten, an-/abhaken - 🔄 **Local-First**: voll funktionsfähig offline, automatischer Sync ohne Datenverluste (Append-only Operations-Log + Hybrid Logical Clocks + Tombstones) - 👤 Anmeldung mit **eigenen Usern** (E-Mail/Passwort, Argon2id) **oder** **OIDC** (Google + beliebiger Generic-OIDC-Provider wie Keycloak/Authentik) - 🔍 **Autocomplete** beim Tippen – Vorschläge aus den aggregierten Item-Namen aller User - 🚫 **Keine Werbung** – cleanes Material-3-Design - 🐳 **Self-hosted** als Docker-Container, automatisches HTTPS via Caddy ## Repository-Aufbau ``` mitbringsl/ ├── backend/ # Go-API (net/http, pgx, sqlc, golang-migrate, go-oidc) ├── android/ # Android-App (Kotlin, Jetpack Compose, Room, Hilt, WorkManager) ├── deploy/ # docker-compose.yml, Caddyfile, .env.example └── docs/ # Architektur-, Sync- und API-Doku ``` ## Schnellstart ### Backend (Docker) ```bash cd deploy cp .env.example .env # Werte anpassen (v.a. Secrets/URLs) docker compose up -d --build # API unter https:// (oder http://localhost:8080 ohne Caddy) ``` ### App bauen Siehe [`android/README.md`](android/README.md) (folgt). Detaillierte Doku: - [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) – Aufbau, Auth-Flows - [`docs/SYNC.md`](docs/SYNC.md) – Sync-Modell & Konfliktlösung - [`docs/API.md`](docs/API.md) – REST-Endpoints ## Lizenz Privatprojekt – alle Rechte vorbehalten.