Flutter Android app for couriers and warehousemen. Used for scanning packages, executing delivery intents, and managing daily operations.
tech.fabricus.pindelivery#FF3131Device-based authentication (no username/password):
GET /auth/staff/login?deviceID=<id> on startupCourier or Warehouseman) and staff IDGET /package/previewPackage?packageID=<id> for quick previewAvailableIntents based on current status and user rolePATCH /package/intentcd PinDelivery-Mobile
flutter build apk --debug
cd PinDelivery-Mobile
flutter build apk --release
APK output: build/app/outputs/flutter-apk/app-release.apk
Requires Android keystore for release builds. Keystore config in android/app/build.gradle.
Note: A new keystore needs to be generated for PinDelivery (separate from SpeedyExpress).
PinDelivery-Mobile/
lib/
main.dart # App entry point
models/ # Data models
viewmodels/ # Business logic (MVVM pattern)
ScanViewModel.dart # Barcode scanning logic
PackageDetailsViewModel.dart # Package detail/actions
views/ # UI screens
services/ # API service layer
android/
app/
src/main/
AndroidManifest.xml # Permissions, package name
java/.../MainActivity.kt # Android entry point
SMS notifications from the mobile app are currently disabled per owner request. The code is commented out (not deleted) in:
ScanViewModel.dartPackageDetailsViewModel.dartCan be re-enabled by uncommenting the relevant sections.