A high-performance, fintech-grade offline-first mobile application built to track personal expenses, manage peer-to-peer settlements, and execute native UPI QR payments. Designed with a clean, space-optimized UI and robust architecture, Hisab ensures your financial data is always accessible, even without an internet connection.
- ⚡ Native UPI & Dynamic QR Payments: Scan standard UPI QR codes or generate custom amount QR codes. Pre-fills payee info and launches installed UPI apps (GPay, PhonePe, Paytm, BHIM) with automated settlement tracking.
- 🔄 Offline-First Architecture & Sync Queue: Create, edit, and delete transactions locally. The app immediately updates UI state with
AsyncStoragecaching and automatically syncs changes to PostgreSQL once reconnected. - 👥 Peer-to-Peer (P2P) Ledgers: Track who owes you and who you owe per contact. View historical Total Given, Total Received, and Pending Settlement with 1-tap UPI settlement.
- 📊 Advanced Analytics & Monthly Trends: Interactive horizontal month selector, 3-column Hero summary cards (Spent, Inflow, Activity), distribution charts, and segmented Category vs. People breakdowns.
- 💎 Fintech Balance Card: Currency typography with privacy toggle (
****) and dual Money In / Money Out chips. - 🎨 Dynamic Theming: Instant switching across 6 themes (Light, Dark, Coffee, Ocean, Forest, Purple).
- 🔒 Enterprise-Grade Security: Fast JWT authentication powered by Clerk with secure token caching via
expo-secure-store.
- Framework: React Native & Expo (SDK 53, React 19)
- Routing: Expo Router (File-based routing)
- State & Caching: React Context API + AsyncStorage (Offline Sync Queue)
- Camera & Scanning:
expo-camera(QR Code Scanner) - Charts: React Native Chart Kit & SVG
- Runtime: Node.js & Express.js
- Database: Serverless PostgreSQL (Neon.tech) with indexed queries
- Caching & Rate Limiting: Upstash Redis with fail-open security
- Authentication: Clerk Auth (JWT verification & User Profiles)
- Node.js (v18+)
- PostgreSQL Database (Local or Neon)
- Clerk Account (For Auth Keys)
- Expo CLI (
npm install -g expo-cli eas-cli)
# Clone the repository
git clone https://github.com/mukeshdhadhariya/react-native-expense-tracker.git
cd react-native-expense-tracker
# Install Mobile Dependencies
cd mobile
npm install
# Install Backend Dependencies
cd ../backend
npm installCreate a .env file in mobile/:
EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...Create a .env file in backend/:
PORT=5001
DATABASE_URL=postgres://...
CLERK_SECRET_KEY=sk_test_...
CLERK_PUBLISHABLE_KEY=pk_test_...
UPSTASH_REDIS_REST_URL=https://...
UPSTASH_REDIS_REST_TOKEN=...# Run Backend API
cd backend
npm run dev
# Run Mobile App (in a new terminal)
cd mobile
npx expo startTo build a standalone installable Android APK via Expo Application Services (EAS):
cd mobile
# 1. Login to Expo
npx eas login
# 2. Build APK
npx eas build -p android --profile previewThis project is open source and available under the MIT License.




