197 lines
4.4 KiB
Markdown
197 lines
4.4 KiB
Markdown
# HHA Logistics - Flutter App
|
|
|
|
Diese Flutter-Anwendung liegt im Monorepo unter `app/`.
|
|
|
|
Das zugehoerige Spring Boot + Vaadin Backend liegt daneben unter `../backend/`.
|
|
|
|
Eine moderne, optisch ansprechende Flutter-App für die Hamburger Hochbahn (HHA) zur Verwaltung von Logistik-Prozessen.
|
|
|
|
## Features
|
|
|
|
### Kernfunktionen
|
|
- **Tour-Management**: Übersichtliche Darstellung aller Touren und Stationen
|
|
- **Barcode-Scanning**: Schnelles Erfassen von Objekten per Kamera
|
|
- **State-Management**: Automatische Zustandsübergänge für Objekte
|
|
- **Offline-Unterstützung**: Lokale Datenspeicherung mit Synchronisation
|
|
- **Echtzeit-Sync**: Automatische Aktualisierung der Daten
|
|
|
|
### Objekttypen
|
|
- **Geldkassetten** (MEK, BEK)
|
|
- **HP Patronen** (H1, H2, H3)
|
|
- **Fahrkartenrollen**
|
|
- **Safebags** (Wertsachenbehälter)
|
|
- **Container**
|
|
|
|
### Stationstypen
|
|
- Lager (Beladung/Rückgabe)
|
|
- Dienststellen
|
|
- Haltestellen
|
|
- Fahrscheinautomaten
|
|
- Versorgungsstellen
|
|
- Geldinstitute
|
|
|
|
## Technischer Stack
|
|
|
|
### Architektur
|
|
- **Clean Architecture**: Trennung von Domain, Data und Presentation Layer
|
|
- **BLoC Pattern**: State Management mit flutter_bloc
|
|
- **Repository Pattern**: Abstraktion der Datenquellen
|
|
|
|
### UI/UX
|
|
- **Material Design 3**: Modernes, konsistentes Design
|
|
- **Flutter Animate**: Flüssige Animationen
|
|
- **Phosphor Icons**: Hochwertige Icons
|
|
- **Google Fonts**: Inter als Hausschrift
|
|
|
|
### Technologien
|
|
- **Mobile Scanner**: Barcode-Scanning
|
|
- **SQFlite**: Lokale Datenbank
|
|
- **Dio**: HTTP-Client für API-Kommunikation
|
|
- **Shared Preferences**: Lokale Einstellungen
|
|
|
|
## Projektstruktur
|
|
|
|
```
|
|
app/
|
|
├── lib/
|
|
│ ├── core/
|
|
│ ├── data/
|
|
│ ├── domain/
|
|
│ └── presentation/
|
|
├── android/
|
|
├── build/
|
|
├── pubspec.yaml
|
|
└── run_app.sh
|
|
```
|
|
|
|
## Installation
|
|
|
|
### Voraussetzungen
|
|
- Flutter SDK >= 3.0.0
|
|
- Dart SDK >= 3.0.0
|
|
- Android Studio / Xcode
|
|
|
|
### Setup
|
|
|
|
1. Repository klonen:
|
|
```bash
|
|
git clone <repository-url>
|
|
cd hha_logistics
|
|
cd app
|
|
```
|
|
|
|
2. Dependencies installieren:
|
|
```bash
|
|
flutter pub get
|
|
```
|
|
|
|
3. Code-Generierung ausführen:
|
|
```bash
|
|
flutter pub run build_runner build
|
|
```
|
|
|
|
4. App starten:
|
|
```bash
|
|
flutter run
|
|
```
|
|
|
|
## Konfiguration
|
|
|
|
### API-Endpunkt
|
|
Die API-URL wird in `lib/core/constants/app_constants.dart` konfiguriert:
|
|
```dart
|
|
static const String baseUrl = 'https://hha-app1.assecutor.de/hha';
|
|
```
|
|
|
|
### Berechtigungen
|
|
|
|
#### Android (android/app/src/main/AndroidManifest.xml)
|
|
```xml
|
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
<uses-permission android:name="android.permission.CAMERA" />
|
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
|
```
|
|
|
|
#### iOS (ios/Runner/Info.plist)
|
|
```xml
|
|
<key>NSCameraUsageDescription</key>
|
|
<string>Kamera wird für Barcode-Scanning benötigt</string>
|
|
```
|
|
|
|
## Fachlicher Workflow
|
|
|
|
### 1. Login & Datensynchronisation
|
|
- Anmeldung mit Geräte-IMEI
|
|
- Automatischer Datenabgleich mit Server
|
|
- Lokale Speicherung für Offline-Nutzung
|
|
|
|
### 2. Tour-Übersicht
|
|
- Liste aller Stationen der aktuellen Tour
|
|
- Fortschrittsanzeige
|
|
- Unterscheidung zwischen offenen und erledigten Stationen
|
|
|
|
### 3. Station-Arbeit
|
|
- Barcode-Scanning zur Identifikation
|
|
- Automatische State-Machine für Zustandsübergänge
|
|
- Manuelle Barcode-Eingabe möglich
|
|
|
|
### 4. State-Machine
|
|
Die App implementiert folgende Zustandsübergänge:
|
|
- `unknown` → `to_delivery` → `delivery` → `station` → `in_fa` → `ret_gi` → `fin_gi`
|
|
- Fehlerfälle: `ret_fail` → `ret_fail_fzg` → `ret_fail_stk`
|
|
- Dienststelle: `ret_ds` → `ret_ds_fzg` → `fin_ds`
|
|
|
|
### 5. Bestandsführung
|
|
- Echtzeit-Anzeige aller Objekte
|
|
- Filterung nach Status und Typ
|
|
- Quittungsverwaltung für Geldkassetten
|
|
|
|
## Design-System
|
|
|
|
### Farben
|
|
- **Primary**: HHA Rot (#E3001B)
|
|
- **Success**: Grün (#4CAF50)
|
|
- **Warning**: Orange (#FF9800)
|
|
- **Error**: Rot (#E3001B)
|
|
|
|
### State Colors
|
|
- `delivery`: Grau (#B3B3B3)
|
|
- `station`: Gelb (#FFDD00)
|
|
- `in_fa`: Grün (#9CDA7A)
|
|
- `ret_fail`: Rot (#FF9081)
|
|
- `ret_ds`: Hellblau (#AFE0ED)
|
|
- `fin_ds`: Blau (#29B7FB)
|
|
|
|
## Entwicklung
|
|
|
|
### Code-Generierung
|
|
Nach Änderungen an Modellen:
|
|
```bash
|
|
flutter pub run build_runner build --delete-conflicting-outputs
|
|
```
|
|
|
|
### Tests ausführen
|
|
```bash
|
|
flutter test
|
|
```
|
|
|
|
### Release Build
|
|
```bash
|
|
# Android
|
|
flutter build apk --release
|
|
flutter build appbundle --release
|
|
|
|
# iOS
|
|
flutter build ios --release
|
|
```
|
|
|
|
## Lizenz
|
|
|
|
Copyright © 2024 Hamburger Hochbahn AG
|
|
|
|
## Support
|
|
|
|
Bei Fragen oder Problemen wenden Sie sich an:
|
|
- IT-Support: support@hha.de
|
|
- Entwicklung: dev@hha.de
|