96 lines
2.5 KiB
Markdown
96 lines
2.5 KiB
Markdown
# 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
|
|
```
|