Skip to content
mukeshdhadhariyaPublic

About

An intuitive expense tracker app built with React Native and Node.js to help users record, manage, and analyze daily expenses.

Topics

Resources

Code of conduct

Contributing

Stars

8 stars

Watchers

0 watching

Forks

Repository files navigation

💸 Hisab - Expense & Settlement Tracker (v2.0)

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.


✨ Features

  • ⚡ 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 AsyncStorage caching 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.

🛠️ Tech Stack

Frontend (Mobile App)

  • 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

Backend (API & Database)

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

📸 Screenshots

Dashboard New Transaction Statistics By Category Statistics By Person Person Transactions


⚙️ Local Development Setup

Prerequisites

  • Node.js (v18+)
  • PostgreSQL Database (Local or Neon)
  • Clerk Account (For Auth Keys)
  • Expo CLI (npm install -g expo-cli eas-cli)

1. Clone & Install Dependencies

# 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 install

2. Configure Environment Variables

Create 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=...

3. Run the Development Servers

# Run Backend API
cd backend
npm run dev

# Run Mobile App (in a new terminal)
cd mobile
npx expo start

📦 Building Standalone APK

To 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 preview

📄 License

This project is open source and available under the MIT License.

About

An intuitive expense tracker app built with React Native and Node.js to help users record, manage, and analyze daily expenses.

Topics

Resources

Code of conduct

Contributing

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages