Aitbaar (Urdu: اعتبار — Trust) is an Android application that solves a problem millions of small vendors and customers face every day — unreliable, dispute-prone, manual transaction recording.
In traditional setups, a vendor writes down a transaction in a notebook (khata). The customer has no record. Disputes happen. Trust breaks.
Aitbaar fixes this.
Every transaction added by a vendor is sent to the customer's app in real time. The customer can Accept or Reject it. Both sides have the same record. No disputes. Full transparency. Complete trust.
| ❌ Traditional Khata | ✅ Aitbaar |
|---|---|
| Vendor writes, customer has no copy | Both parties have the same record |
| Disputes with no proof | Log-and-confirm mechanism eliminates disputes |
| No real-time updates | Firebase real-time sync across both apps |
| Lost or damaged notebooks | Cloud-backed, always accessible |
| No offline access | Room Database enables full offline functionality |
The core innovation of Aitbaar. When a vendor logs a transaction:
- It appears instantly on the customer's app
- The customer sees an Accept ✅ or Reject ❌ button
- Only confirmed transactions are locked into the ledger
- Both parties always share the same source of truth
- Powered by Firebase Firestore
- Transactions reflect instantly on both the vendor and customer app
- No refresh needed — changes appear live
- All data persists locally via Room Database
- App works fully without internet
- Automatically syncs to Firestore when connectivity is restored
- Vendor App — Add transactions, view customer ledger history, track balances
- Customer App — Receive transaction requests, accept or reject, view full history
| Layer | Technology |
|---|---|
| Language | Kotlin |
| Architecture | MVVM + Repository Pattern |
| Cloud Database | Firebase Firestore |
| Local Database | Room Database |
| Async Operations | Kotlin Coroutines + Flow |
| Real-Time Updates | Firestore Snapshot Listeners |
| UI | Material Design 3 |
| IDE | Android Studio |
├── ui/
│ ├── vendor/ # Vendor-side screens
│ └── customer/ # Customer-side screens
├── viewmodel/ # ViewModels (MVVM)
├── repository/ # Single source of truth
├── data/
│ ├── local/ # Room Database (offline)
│ └── remote/ # Firebase Firestore (cloud)
└── model/ # Data classes
Data Flow:
UI → ViewModel → Repository → Room (local) ↔ Firestore (cloud)
The Repository pattern ensures the UI never talks directly to the database. All data flows through a single, testable layer.
Vendor adds transaction
↓
Firestore receives entry (real-time)
↓
Customer app gets notification
↓
Customer taps Accept ✅ or Reject ❌
↓
Both ledgers update instantly
↓
Room DB syncs for offline access
- Solves a real problem — Built for the millions of small businesses that still use paper khatas
- Trust by design — The accept/reject mechanism isn't just a feature, it's the entire philosophy of the app
- Production-ready architecture — MVVM, Repository pattern, offline-first; built to scale
- Dual-app real-time system — Two separate user roles with live data sync between them
Akeel Shafi — Android Application Developer
Built with ❤️ to bring trust back to everyday transactions