KhataFlow is a secure, offline-first personal ledger and expense bookkeeping manager built with Flutter. It helps individuals, freelancers, and small businesses track transactions, manage debts/credits, generate PDF statements, and set automated reminders—all without requiring an active internet connection.
- Biometric & PIN Lock Screen: Fast, secure fingerprint/face recognition and 4-digit PIN access powered by local hardware-backed storage (SHA-256 salted hashes).
- Keyboard-Safe Security Dialogs: Fully responsive security & authentication dialogs with adaptive padding and scroll support to prevent keyboard overlap on all devices.
- Modal Recovery Question Selector: Sleek Modal Bottom Sheet interface for choosing security recovery questions with custom question support.
- Offline-First SQLite Storage: High-performance thread-safe SQLite database operations optimized for speed and large datasets (>50,000 transactions).
- Google Play 16 KB Page-Size Ready: Fully compliant with Android 16 KB memory page-size specifications.
- Local Backup & Restore: Securely export your entire ledger database to a local file and restore it seamlessly on any device.
- Device Contact Integration: Import names and phone numbers directly from your phone's address book to quickly build ledger entries.
- Statement Generation & Sharing: Create professionally formatted PDF ledger statements with running balance logs, status cards, and direct sharing options.
- Ledger Reminders & Notifications: Set up local notifications and reminders to ensure timely updates and reviews.
- Trash Bin Recovery: Safe deletion framework supporting soft-deletes and automatic 30-day purge management.
- Interactive Analytics: Premium dashboard plotting monthly cash flow ratios and net ledger position charts using
fl_chart.
graph TD
A[GoRouter] --> B[UI Screens / Presentation]
B --> C[Riverpod Providers / State Notifiers]
C --> D[Repositories]
D --> E[SQLite Local Database]
D --> F[Local Secure Storage]
C --> G[Local Notification Service]
C --> H[PDF Generation Service]
C --> I[Backup & Contact Services]
- Framework: Flutter (Dart)
- State Management: Riverpod (Auto-generated & manual providers, async state tracking)
- Local Database: SQLite / sqflite
- Local Notifications:
flutter_local_notifications - PDF & Share:
pdf,share_plus,url_launcher - Contacts:
flutter_contacts(Device address book integration) - Storage & Files:
file_picker,path_provider,flutter_secure_storage - Routing: GoRouter
- Charts:
fl_chart - Fonts:
google_fonts(Inter)
lib/
├── core/ # Shared configurations and services
│ ├── database/ # SQLite AppDatabase setup and initialization
│ ├── errors/ # App exceptions and error handling
│ ├── presentation/ # Shared base widgets (offline banner, etc.)
│ ├── router/ # GoRouter router declaration
│ └── services/ # Notification, security, and purge services
└── features/ # Modular feature directories
├── auth/ # PIN/Biometric lock and unlock screens
├── dashboard/ # Main overview and balance widgets
├── khata/ # Ledger accounts CRUD and details
├── notifications/ # Reminders and alert schedules
├── onboarding/ # Welcome screens and initial profile creation
├── people/ # Customer/contacts directory
├── reports/ # PDF ledger statements and generator
├── settings/ # App preferences and configurations
├── transactions/ # Add, edit, filter, and detail transactions
└── trash/ # Soft-delete recovery screen
- Flutter SDK:
^3.22.0 - Dart SDK:
^3.4.0 - Java: JDK 17
- Android Studio or VS Code with Flutter extensions installed
-
Clone the repository:
git clone https://github.com/Najeeb1106/khataflow_mob_app.git cd khataflow_mob_app -
Sync packages:
flutter pub get
-
Run tests:
flutter test -
Run the application:
- For Android (emulator or physical device):
flutter run
- For Android (emulator or physical device):
- Multi-currency conversion tools with offline rate cache.
- Automated SMS/WhatsApp due alerts trigger templates.
- Desktop release support (Windows / macOS).
- Cloud sync backup via custom WebDAV or Google Drive API.
We welcome community contributions! Please read our Contribution Guidelines to learn how to open issues, submit pull requests, and maintain clean commit conventions.
- Multi-device syncing is not natively supported since data is held 100% offline.
- Face Unlock on certain low-end devices may fall back to PIN authentication due to Android biometrics level classifications.
- v1.1.0 (Current): Complete migration from Isar to SQLite, Google Play 16 KB memory page-size compliance, keyboard-safe security dialogs, modal recovery question selector, and release optimization.
- v1.0.3: Final production-ready release with unified confirmation dialogs, cached search queries, haptic triggers, PDF export history tracking, and build metadata.
- v1.0.2: Shimmer loaders, custom snackbars, settings metadata, dialogs, and widget tests alignment.
- v1.0.1: Google Fonts (Inter) layout, Cash Flow analytics charts, timeline swipe actions, storage metrics, and advanced search.
- v1.0.0: Initial Release (PIN authentication, Isar storage, PDF reports generator, notifications).
This project is licensed under the MIT License - see the LICENSE file for details.
