init
This commit is contained in:
176
README.md
Normal file
176
README.md
Normal file
@@ -0,0 +1,176 @@
|
||||
# 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]
|
||||
Reference in New Issue
Block a user