Files
Watcher-Mobile/README.md
2026-01-12 14:07:48 +01:00

177 lines
4.5 KiB
Markdown

# Watcher Mobile
Android Mobile App für das Watcher Monitoring System
## Übersicht
Watcher Mobile ist eine native Android App, die mit dem Watcher Monitoring System kommuniziert. Die App ermöglicht es, Monitoring-Daten von Agents abzurufen, den System-Status zu überwachen und Alerts zu verwalten.
## Features
- **Dashboard**: Übersicht über den aktuellen System-Status
- Anzahl aktiver/inaktiver Agents
- Aktuelle Alerts und kritische Meldungen
- System-Health Status
- **Agent-Verwaltung**: Übersicht aller Monitoring Agents
- Status-Anzeige (Online/Offline/Warning/Error)
- Grundlegende Metriken (CPU, RAM, Disk)
- Letzte Verbindungszeit
- **Alerts**: Benachrichtigungen und Warnungen
- Nach Schweregrad gefiltert (Info, Warning, Critical)
- Zeitstempel und Details
- **Settings**: Konfiguration der App
- API URL Einstellungen
- API Key Verwaltung
- Refresh-Intervall
- Benachrichtigungseinstellungen
## Technologie-Stack
- **Sprache**: Kotlin
- **UI Framework**: Jetpack Compose
- **Architecture**: MVVM (Model-View-ViewModel)
- **Networking**: Retrofit + OkHttp
- **JSON**: Gson
- **Async**: Kotlin Coroutines + Flow
- **Storage**: DataStore Preferences
- **Minimum SDK**: 24 (Android 7.0)
- **Target SDK**: 34 (Android 14)
## Projektstruktur
```
app/src/main/java/com/watcher/mobile/
├── data/ # Datenmodelle
│ └── MonitoringData.kt
├── network/ # API Service und Retrofit Client
│ ├── ApiService.kt
│ └── RetrofitClient.kt
├── repository/ # Repository Pattern für Datenzugriff
│ └── MonitoringRepository.kt
├── viewmodel/ # ViewModels für UI State Management
│ ├── DashboardViewModel.kt
│ └── AgentsViewModel.kt
├── ui/ # Compose UI Komponenten
│ ├── DashboardScreen.kt
│ ├── AgentsScreen.kt
│ └── theme/
│ ├── Theme.kt
│ └── Type.kt
├── utils/ # Hilfsfunktionen
│ └── PreferencesManager.kt
├── MainActivity.kt # Haupt-Activity
└── WatcherApplication.kt # Application Class
```
## Setup & Installation
### Voraussetzungen
- Android Studio Hedgehog (2023.1.1) oder neuer
- JDK 17
- Android SDK mit API Level 34
- Gradle 8.2+
### Installation
1. **Repository klonen**
```bash
git clone <your-repository-url>
cd Watcher-Mobile
```
2. **Projekt in Android Studio öffnen**
- Android Studio starten
- "Open an Existing Project" auswählen
- Zum Watcher-Mobile Ordner navigieren
3. **API URL konfigurieren**
Bearbeite `app/build.gradle.kts` und setze die Base URL deiner API:
```kotlin
buildConfigField("String", "API_BASE_URL", "\"https://your-api.com/api/\"")
```
4. **Build & Run**
- Sync Project with Gradle Files
- Build → Make Project
- Run → Run 'app'
## API Integration
Die App kommuniziert mit der WebApp über eine REST API. Folgende Endpunkte werden verwendet:
### Dashboard
- `GET /api/dashboard` - Dashboard Summary
### Agents
- `GET /api/agents` - Liste aller Agents (mit Pagination)
- `GET /api/agents/{id}` - Details zu einem Agent
- `GET /api/agents/{id}/metrics` - Metriken eines Agents
### Alerts
- `GET /api/alerts` - Liste aller Alerts (mit Pagination)
- `GET /api/alerts/{id}` - Details zu einem Alert
- `POST /api/alerts/{id}/acknowledge` - Alert bestätigen
### Health
- `GET /api/health` - Health Check
### API Response Format
Die API sollte folgendes Response-Format verwenden:
```json
{
"success": true,
"data": { ... },
"error": null,
"timestamp": 1234567890
}
```
### Authentication
Die App unterstützt API Key Authentication über den `Authorization` Header:
```
Authorization: Bearer YOUR_API_KEY
```
Die API URL und der API Key können in den App-Einstellungen konfiguriert werden.
## Entwicklung
### Code Style
Das Projekt folgt den offiziellen Kotlin Coding Conventions.
### Build Variants
- **Debug**: Entwicklungsversion mit Logging
- **Release**: Produktionsversion mit ProGuard/R8 Optimierung
### Logging
Im Debug-Build sind HTTP Requests vollständig geloggt (via OkHttp Interceptor).
## Zukünftige Features
- [ ] Push-Benachrichtigungen für kritische Alerts
- [ ] Detaillierte Metriken-Grafiken
- [ ] Alert-Filter und -Suche
- [ ] Dark Mode Toggle
- [ ] Offline-Cache mit Room Database
- [ ] Widget für Quick-Status
- [ ] Biometrische Authentifizierung
## Lizenz
[Hier deine Lizenz einfügen]
## Kontakt
[Hier deine Kontaktinformationen einfügen]