Skip to content

Repository files navigation

Kosh

Offline-first personal finance and social payments — built with Flutter.

Author: Devil1716

Kosh tracks a private ledger and splits bills with friends, then starts UPI / Google Pay with amounts that come only from a deterministic settlement engine.

This is not a bank. Client UPI responses are not treated as proof of payment. Demo mode uses MockPaymentService. Automatic importing uses a consent-driven FinancialDataProvider abstraction — Kosh does not access Google Pay’s private application database.

Highlights

  • Offline ledger: months, search, swipe-delete, undo, budgets, insights, goals, forecasts
  • Firebase Auth: email, Google Sign-In, password reset, guest mode
  • Friends, groups, equal / exact / percentage / item splits (paise)
  • Deterministic balances and min-cash-flow settlements
  • Settle up with Mock / Google Pay / other UPI verification states
  • Connect account (demo AA) → import pipeline → categorizer → ledger
  • Charcoal + lime UI (#090A0A / #D7FF3F)

Quick start

git clone https://github.com/Devil1716/kosh.git
cd kosh
flutter pub get
flutter analyze
flutter test
flutter run -d web-server --web-hostname 127.0.0.1 --web-port 8099

Android for real UPI intents; web/desktop use the demo payment path.

Judge demo (~90–120s)

  1. Launch Kosh → welcome / login → Continue as Guest (or create account)
  2. Dashboard → social balances + ledger
  3. PeopleGoa Trip
  4. Split bill ₹2,400 dinner, four people, Equal → ₹600 each
  5. Settle Up → Demo Google Pay → verifying → confirmed
  6. Return to dashboard

Architecture

UI → WalletStore + SocialStore + AuthController
   → Local JSON (UID-scoped) ↔ optional Firestore
   → FinanceEngine · SplitEngine · BalanceEngine · PaymentService
   → FinancialDataProvider → ImportPipeline

Firebase project: kosh-pocket-app. Guest stays local. Signed-in users sync under users/{uid}/….

Releases

Tagged versions (v*) trigger GitHub Actions to run tests and publish a GitHub Release with build notes.

git tag v2.0.0
git push origin v2.0.0

Or run Actions → Release → Run workflow and enter a tag (e.g. v2.0.0).

Testing

flutter test
flutter analyze

Production limits

  • Google Pay initiation is supported where the OS allows; opening GPay ≠ paid
  • Server/PSP verification is required before treating payments as settled in production
  • Account Aggregator production credentials are not configured (mock provider for demo)
  • Deploy firestore.rules from this repo after review

License

MIT — see LICENSE.

Author

Maintained by Devil1716.

About

Offline pocket ledger for daily income and spending

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages