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