# HouseOrg 

Gemeinsame Haushalts-App mit KI-Artikelerkennung, geteiltem Inventar und automatischer Einkaufsliste.

## Setup

### 1. Node.js installieren (Ubuntu)
```bash
sudo apt install -y nodejs npm
```

### 2. Abhängigkeiten installieren
```bash
npm install
```

### 3. Firebase einrichten
1. [Firebase Console](https://console.firebase.google.com) öffnen
2. Neues Projekt erstellen: `HouseOrg`
3. **Firestore Database** aktivieren (Production mode)
4. **Firebase Storage** aktivieren
5. **Authentication** → Anonymous aktivieren
6. **Cloud Messaging** ist standardmäßig aktiv
7. Android App registrieren (`de.houseorg.app`) → `google-services.json` herunterladen → in Projektwurzel legen
8. iOS App registrieren (`de.houseorg.app`) → `GoogleService-Info.plist` herunterladen → in Projektwurzel legen

### 4. Firestore Security Rules
```firestore
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /households/{householdId} {
      allow read: if true;
      allow write: if true;

      match /{subcollection}/{docId} {
        allow read, write: if true;
      }
    }
  }
}
```
> Hinweis: Für Produktion auf authentifizierte Zugriffe einschränken.

### 5. OpenAI API Key
```bash
cp .env.example .env
# EXPO_PUBLIC_OPENAI_API_KEY=sk-... eintragen
```

### 6. App starten
```bash
npx expo start
```

## Architektur

- **Framework**: React Native + Expo (TypeScript)
- **Navigation**: Expo Router (file-based)
- **Backend**: Firebase (Firestore, Storage, FCM, Anonymous Auth)
- **KI-Erkennung**: OpenAI GPT-4o-mini Vision
- **Barcode**: Open Food Facts API
- **State**: Zustand

## Kosten (geschätzt)

| Dienst | Kosten |
|--------|--------|
| Firebase (Free Tier) | $0/Monat |
| OpenAI GPT-4o-mini | ~$0.10/Monat |
| Apple Developer | $99/Jahr (nur für App Store) |
| Google Play | $25 einmalig |

## Projektstruktur

```
app/
  _layout.tsx          # Root Layout + App-Init
  onboarding.tsx       # Haushalt erstellen / beitreten
  join.tsx             # Deeplink-Handler für Einladungen
  (tabs)/
    index.tsx          # Inventar
    shopping.tsx       # Einkaufsliste
    settings.tsx       # Einstellungen
  modals/
    add-item.tsx       # Artikel hinzufügen (Kamera + Barcode)
    item-detail.tsx    # Artikel-Detail & Bearbeiten
src/
  types/               # TypeScript-Typen
  constants/           # Farben, Labels, Konstanten
  services/            # Firebase, AI, Barcode, Notifications
  hooks/               # Zustand Store + Realtime-Sync
  components/          # UI-Komponenten
  utils/               # Hilfsfunktionen
```
