Skip to content

Ujjwaljain16/SpentSmart

Repository files navigation

SpentSmart Logo

SpentSmart

Privacy-First UPI Expense Tracker for India

React Native Expo TypeScript Privacy First


📖 What is SpentSmart?

SpentSmart is a mobile expense tracking app designed specifically for the Indian UPI ecosystem. Scan any UPI QR code, track your spending, and get insights all while keeping your data 100% local on your device.

No cloud. No SMS access. No bank linking. Just pure, private expense tracking.


🤔 Why SpentSmart?

Most expense apps in India require invasive permissions:

  • ❌ Reading your SMS for transaction alerts
  • ❌ Linking your bank accounts via Account Aggregators
  • ❌ Uploading your financial data to cloud servers

SpentSmart takes a different approach:

Feature SpentSmart Other Apps
Data Storage 📱 100% Local ☁️ Cloud
SMS Access ❌ Not Required ✅ Required
Bank Linking ❌ Never ✅ Often Required
Works Offline ✅ Yes ❌ Usually No
Open Source ✅ Yes ❌ Rarely

✨ Features

🔒 Security & Privacy

  • Biometric Lock — FaceID/Fingerprint to unlock the app
  • Privacy Mode — Blur amounts with one tap
  • Privacy Dashboard — See exactly what data is stored
  • Zero Cloud — All data stays on your phone

📸 Smart Expense Tracking

  • QR Scanner — Scan any UPI QR code to log payments instantly
  • Manual Entry — Quick entry with contact picker integration
  • Categories — Auto-categorize or customize your own
  • Edit & Delete — Full control over your transaction history

📊 Insights & Analytics

  • Daily/Weekly/Monthly trends
  • Category breakdown with visual charts
  • Budget tracking with progress bars
  • Spending patterns to spot habits

⚡ User Experience

  • Dark/Light Mode — Automatic theme switching
  • OTA Updates — Get new features without app store updates
  • Crash Protection — Global error boundary for stability
  • Optimized Lists — Smooth scrolling even with 1000+ transactions

Demo

Home History Confirmation Modal
Analytics Payment + Expense Logger Settings
Manual Entry Category Management Instant QR Recieve and Logging

🚀 Getting Started

Prerequisites

  • Node.js >= 18
  • npm or pnpm

Installation

# Clone the repository
git clone https://github.com/Ujjwaljain16/SpentSmart.git
cd SpentSmart

# Install dependencies
npm install

# Start development server
npx expo start

Building for Production

# Configure EAS (one-time)
eas build:configure

# Build Android APK
eas build --platform android --profile preview

# Push OTA update (no build needed)
eas update --branch preview --message "Your update message"

🏗️ Architecture

upi-tracker-react-native/
├── app/                    # Screens (Expo Router file-based routing)
│   ├── (tabs)/             # Tab navigation screens
│   ├── onboarding/         # First-time user flow
│   └── *.tsx               # Individual screens
├── components/             # Reusable UI components
│   ├── home/               # Home screen components
│   ├── payment/            # Payment flow components
│   └── ui/                 # Generic UI elements
├── services/               # Business logic layer
│   ├── storage.ts          # Transaction CRUD operations
│   ├── analytics.ts        # Insights calculations
│   └── upi-app-launcher.ts # UPI intent handling
├── contexts/               # React Context providers
│   └── security-context.tsx
├── hooks/                  # Custom React hooks
├── constants/              # Theme, categories, UPI config
└── types/                  # TypeScript interfaces

Key Principles

  • Separation of Concerns: Services handle data, contexts handle state, components handle UI
  • Privacy by Design: No network calls for user data
  • Offline First: Works without internet
  • Type Safety: Full TypeScript coverage

🛡️ Permissions

SpentSmart requires minimal permissions:

Permission Purpose When Asked
Camera Scan UPI QR codes When you open Scanner
Biometrics Secure app access When you enable App Lock
Contacts Pick payees for manual entry When you tap "Pick Contact"

What we DON'T access: SMS, Location, Storage, Internet (for user data)


📄 Privacy Policy

See PRIVACY.md for our complete privacy policy.

TL;DR: Your data never leaves your device. We can't see it, we don't want it, we don't collect it.


Made with ❤️ for privacy-conscious Indians
Your money. Your data. Your control.

About

SpentSmart, a privacy-first UPI expense tracking mobile application designed for the Indian market.

Resources

License

Stars

Watchers

Forks

Contributors