Skip to content

Repository files navigation

KhataFlow v1.1.0

KhataFlow Banner

Flutter SDK Dart SDK Storage Database Page Size UI Export Security License

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.


📱 Features

  • 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.

🏗️ Architecture Diagram

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]
Loading

🛠️ Technology Stack

  • 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)

📂 Project Architecture

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

🚀 Getting Started

Prerequisites

  • Flutter SDK: ^3.22.0
  • Dart SDK: ^3.4.0
  • Java: JDK 17
  • Android Studio or VS Code with Flutter extensions installed

Installation

  1. Clone the repository:

    git clone https://github.com/Najeeb1106/khataflow_mob_app.git
    cd khataflow_mob_app
  2. Sync packages:

    flutter pub get
  3. Run tests:

    flutter test
  4. Run the application:

    • For Android (emulator or physical device):
      flutter run

🗓️ Future Roadmap

  • 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.

🤝 Contributing

We welcome community contributions! Please read our Contribution Guidelines to learn how to open issues, submit pull requests, and maintain clean commit conventions.


⚠️ Known Limitations

  • 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.

📜 Version History

  • 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).

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A secure, offline-first personal ledger and expense bookkeeping manager built with Flutter. Features local database (Sqlite), PDF statements generation, notification reminders, and biometric lock.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages