Smart group expense ledger with multi-currency exchange rates, Google OAuth authentication, role-based bill access, and peer-to-peer settlement optimization.
🔗 GitHub Repository: https://github.com/mudoker/ledger
- Multi-Currency & Live Rates: Seamless currency switching powered by the Frankfurter API v2 with country flag badges and intelligent fallback mechanisms.
- Smart Splitting: Split items by exact consumption, proportional shares, or custom quantities.
- Sponsorship & Late Arrivals: Automatic credit subsidies and surplus handling.
- P2P Settlement Optimization: Computes minimum cash transfer flows between members.
- Google OAuth 2.0 & RBAC: Private bill storage with member-only viewing and owner privileges.
- Public Read-Only Sharing: Shareable links for guests without mandatory login.
- Offline & PWA Ready: Installable Progressive Web App with auto-updating service worker cache.
- OCR Receipt Scanning: Scan receipt totals directly into your bill.
- Framework: Next.js 16 (App Router, Turbopack)
- UI Components: Tailwind CSS, Radix UI, Lucide Icons, Country Flag Icons
- State Management: Zustand (persisted)
- Database: Dual Neon PostgreSQL / Local SQLite fallback
- Auth: Google OAuth 2.0 / JWT session cookies
-
Install dependencies:
bun install # or npm install -
Copy environment variables:
cp .env.example .env.local
-
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser.