27602aee4c5667f1c5c670b2c73d0ed3163f3c10
Set up E2E test framework for Android using WebdriverIO, Appium, and UiAutomator2. Add testID props to key components (AuthButton, BaseButton, ChatBubble, CustomTextInput, ProposedEventCard) and apply testIDs to login screen, chat screen, tab bar, and settings. Include initial tests for app launch detection and login flow validation. Update CLAUDE.md with E2E docs.
CalChat
Kalender-App mit KI-Chatbot. Termine lassen sich per Chat in natuerlicher Sprache erstellen, bearbeiten und loeschen.
Tech Stack
| Bereich | Technologie |
|---|---|
| Frontend | React Native, Expo, Expo-Router, NativeWind, Zustand |
| Backend | Express.js, MongoDB, Mongoose, OpenAI GPT |
| Shared | TypeScript Monorepo mit npm Workspaces |
| Optional | CalDAV-Sync (z.B. Radicale) |
Voraussetzungen
- Node.js (>= 20)
- npm
- Docker & Docker Compose (fuer MongoDB)
- OpenAI API Key (fuer KI-Chat)
- Android SDK + Java (nur fuer APK-Build)
Projekt aufsetzen
1. Repository klonen
git clone <repo-url>
cd calchat
2. Dependencies installieren
npm install
Installiert alle Dependencies fuer Client, Server und Shared.
3. MongoDB starten
cd apps/server/docker/mongo
docker compose up -d
- MongoDB:
localhost:27017(root/mongoose) - Mongo Express UI:
localhost:8083(admin/admin)
4. Server konfigurieren
cp apps/server/.env.example apps/server/.env
apps/server/.env bearbeiten:
MONGODB_URI=mongodb://root:mongoose@localhost:27017/calchat?authSource=admin
OPENAI_API_KEY=sk-proj-... # Eigenen Key eintragen
USE_TEST_RESPONSES=false # true = statische Testantworten ohne GPT
LOG_LEVEL=debug
NODE_ENV=development
PORT=3000
5. Client konfigurieren
cp apps/client/.env.example apps/client/.env
apps/client/.env bearbeiten:
# Fuer Emulator/Web:
EXPO_PUBLIC_API_URL=http://localhost:3000/api
# Fuer physisches Geraet im gleichen Netzwerk:
EXPO_PUBLIC_API_URL=http://<DEINE-LOKALE-IP>:3000/api
6. Server starten
npm run dev -w @calchat/server
Startet den Server auf Port 3000 (mit tsx watch - startet bei Dateiänderungen automatisch neu (oder sollte es zumindest)).
7. Client starten
npm run start -w @calchat/client
Dann im Expo-Menue die gewuenschte Plattform waehlen:
a- Android Emulatori- iOS Simulatorw- Web Browser
Oder direkt:
npm run android -w @calchat/client
npm run ios -w @calchat/client
npm run web -w @calchat/client
CalDAV (optional)
Fuer CalDAV-Synchronisation kann ein Radicale-Server gestartet werden:
cd apps/server/docker/radicale
docker compose up -d
Radicale ist dann unter localhost:5232 erreichbar. Die CalDAV-Verbindung wird in der App unter Einstellungen konfiguriert.
Weitere Befehle
npm run format # Prettier auf alle TS/TSX-Dateien
npm run lint -w @calchat/client # ESLint (Client)
npm run build -w @calchat/server # TypeScript kompilieren (Server)
npm run build:apk -w @calchat/client # APK lokal bauen (EAS)
Projektstruktur
calchat/
├── apps/
│ ├── client/ # Expo React Native App
│ └── server/ # Express.js Backend
│ └── docker/
│ ├── mongo/ # MongoDB + Mongo Express
│ └── radicale/ # CalDAV Server
└── packages/
└── shared/ # Geteilte Types und Utilities
Description
Languages
TypeScript
96.3%
Shell
2%
HCL
0.9%
JavaScript
0.5%
Dockerfile
0.3%