Mobile Applications
Keshless includes two mobile applications built with Flutter: a User App for consumers and a Vendor App for merchants/agents.
Applications Overview
| App | Platform | Purpose |
|---|---|---|
| User App | iOS, Android | Consumer wallet and payments |
| Vendor App | iOS, Android | Merchant POS and agent services |
Technology Stack
| Component | Technology |
|---|---|
| Framework | Flutter 3.x |
| State Management | GetX |
| HTTP Client | Dio |
| Local Storage | SharedPreferences, FlutterSecureStorage |
| NFC | flutter_nfc_kit |
| QR Codes | qr_code_scanner, qr_flutter |
| Biometrics | local_auth |
| Push Notifications | Firebase Cloud Messaging |
Architecture
┌─────────────────────────────────────────────────────────┐
│ Mobile Apps │
├─────────────────────┬───────────────────────────────────┤
│ User App │ Vendor App │
├─────────────────────┴───────────────────────────────────┤
│ Shared Services │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐│
│ │ Auth │ │ API │ │ Secure Storage ││
│ │ Service │ │ Client │ │ Service ││
│ └─────────────┘ └─────────────┘ └─────────────────────┘│
├─────────────────────────────────────────────────────────┤
│ Keshless API │
└─────────────────────────────────────────────────────────┘User App Features
| Feature | Description |
|---|---|
| Wallet | Balance, send/receive, QR codes |
| Payments | Airtime, bills, vendor payments |
| NFC Cards | Link and manage NFC payment cards |
| Tickets | Browse and purchase event tickets |
| KYC | Identity verification flow |
| Jobs | Agent verification tasks |
Vendor App Features
| Feature | Description |
|---|---|
| Dashboard | Revenue metrics and activity |
| POS | Accept NFC card payments |
| Top-up | Add funds to customer wallets |
| Withdrawal | Process cash-out requests |
| Team | Manage sub-users and tills |
| Cards | Link, block, reset customer cards |
| Tickets | Sell and scan event tickets |
Common Features
Both apps share these foundational features:
| Feature | Description |
|---|---|
| Secure Authentication | JWT-based auth with biometric login |
| Transaction History | Real-time viewing with filtering |
| NFC Support | Card reading and payment |
| Push Notifications | Real-time transaction alerts |
| Offline Capability | Basic functionality when offline |
Environment Configuration
API Endpoints
| Environment | URL |
|---|---|
| Production | https://api.keshless.app |
| Development | https://dev-api.keshless.app |
Build Commands
| Command | Description |
|---|---|
flutter run | Run in debug mode |
flutter build apk | Build Android APK |
flutter build ios | Build iOS app |
flutter build apk --release | Release APK |
Code Structure
lib/
├── main.dart # Entry point
├── routes/ # Navigation routes
├── screens/ # UI screens
├── controllers/ # GetX controllers
├── services/ # API services
├── models/ # Data models
├── widgets/ # Reusable widgets
└── utils/ # Helper utilitiesCode Locations
| App | Repository Path |
|---|---|
| User App | frontend/keshless-app/ |
| Vendor App | frontend/keshless-vendor-app/ |