Skip to content

Repository files navigation

🛡️ UPI Vault

UPI Vault Logo

Private, On-Device AI Financial Memory for India

"Every rupee should tell a story."

Kotlin Jetpack Compose Android Privacy First License


🌟 Overview

UPI Vault is a next-generation, local-first personal finance app built for Indian UPI users. Unlike traditional fintech applications that monetise your transaction history by selling loans or credit cards, UPI Vault operates completely offline and on-device.

It automatically transforms raw UPI SMS alerts and bank notifications into a searchable Life Timeline, surfacing rich spending stories, subscription trackers, duplicate payment flags, and real-time financial intelligence.


✨ Key Features

📜 1. Life Timeline & Narrated Stories

  • Contextual Financial Memory: Groups spending into meaningful life events (e.g., "Weekend Getaway to Goa", "Monthly Swiggy Binge", "Medical Expenses").
  • Rich Narratives: Automatic categorization across food, shopping, travel, utilities, and peer-to-peer transfers.

🔒 2. Privacy Vault & Biometric Security

  • 100% On-Device Engine: All parsing, classification, and analytics run locally. Zero data leaves your device.
  • Biometric Security: Protect sensitive bank balances and transaction histories with Biometric Prompt (Fingerprint / Face Unlock).
  • DPDP Act Compliant: Zero telemetry, zero external servers, and a one-tap "Wipe Everything" privacy dashboard.

🤖 3. Smart Parser & AI Classifier

  • Multi-Bank SMS & Notification Parser: Supports HDFC, SBI, ICICI, Axis, Paytm, PhonePe, Google Pay, and major Indian banks.
  • On-Device Marketing / Spam Classifier: Automatically filters promotional bank SMS, OTPs, and spam from financial ledgers.
  • Historical SMS Scanner: Seamlessly backfills past financial transactions from your inbox upon first launch.

🔍 4. Natural Language Search

  • Ask your finances plain-English questions:
    • "How much did I spend on Zomato last month?"
    • "Transactions over ₹5,000 in Goa"
    • "Show my Amazon orders from December"

🔁 5. Subscription Finder & Duplicate Alerts

  • Recurring Payment Detection: Automatically spots hidden subscriptions (Netflix, Spotify, Prime, Gym, OTT).
  • Duplicate Payment Flagging: Real-time warnings when a UPI transaction appears to be double-debited.

🏛️ Architecture & Tech Stack

UPI Vault is built using modern Android development practices adhering to Clean Architecture and MVVM pattern:

        ┌────────────────────────────────────────┐
        │        Jetpack Compose (UI)            │
        └───────────────────┬────────────────────┘
                            │ (StateFlow / Events)
        ┌───────────────────▼────────────────────┐
        │        MainViewModel (State)           │
        └───────────────────┬────────────────────┘
                            │
        ┌───────────────────▼────────────────────┘
        │    TransactionRepository (Domain)      │
        └─────────┬──────────────────────┬───────┘
                  │                      │
   ┌──────────────▼──────┐        ┌──────▼────────────────┐
   │ LocalVaultStorage   │        │ SmsParserEngine       │
   │ (Encrypted Storage) │        │ (On-Device Classifier)│
   └─────────────────────┘        └───────────────────────┘
Layer Technology
Language Kotlin 2.0+
UI Framework Jetpack Compose (Material 3)
Design System Custom Glassmorphism Theme & Custom Dark Mode
Architecture MVVM + Clean Architecture + Repository Pattern
State Management Kotlin StateFlow & Coroutines
Security AndroidX Biometric API & Encrypted Storage
Parsing Engine RegEx + Heuristic Classifier + Historical SMS Scanner

📂 Project Structure

UPI Vault/
├── app/
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/com/upivault/app/
│   │   │   │   ├── data/
│   │   │   │   │   ├── mock/             # Synthetic data generators for testing
│   │   │   │   │   ├── model/            # Transaction, Category & Story data models
│   │   │   │   │   ├── parser/           # SMS & Notification Parsing Services
│   │   │   │   │   ├── repository/       # Unified Transaction & Analytics Repo
│   │   │   │   │   └── storage/          # Local Vault encrypted storage
│   │   │   │   ├── ui/
│   │   │   │   │   ├── components/       # Reusable Compose UI widgets
│   │   │   │   │   ├── screens/          # Main application screens
│   │   │   │   │   ├── security/         # Biometric authentication helper
│   │   │   │   │   ├── theme/            # Color tokens, Typography, Glassmorphism
│   │   │   │   │   └── viewmodel/        # Main Application ViewModel
│   │   │   │   └── MainActivity.kt       # Application Entry Point
│   │   │   └── AndroidManifest.xml
│   │   └── test/                         # Unit tests for Parsers & Repositories
│   └── build.gradle.kts
├── Kahani-Build-Plan.md                  # Comprehensive product design plan
├── README.md                             # Project documentation
└── build.gradle.kts

🔒 Privacy & Feature Comparison

Feature UPI Vault 🛡️ Typical Finance Apps 💳
On-Device Data Processing ✅ 100% Local ❌ Sent to Cloud
Requires Phone Number / Login ❌ No Login Needed ✅ Mandatory
Cross-Sells Credit Cards / Loans ❌ Never ✅ Primary Revenue
Biometric Vault Protection ✅ Included ❌ Rare
Timeline & Life Stories ✅ Yes ❌ Statements Only
Works Offline ✅ Fully Offline ❌ Internet Required

🚀 Getting Started

Prerequisites

  • Android Studio Ladybug (2024.2.1+) or newer.
  • JDK: Java 17+.
  • Android SDK: Min SDK 26 (Android 8.0+), Target SDK 34.

Building & Running

  1. Clone the repository:

    git clone https://github.com/Pratikdate/UPI-Vault.git
    cd "UPI Vault"
  2. Open in Android Studio:

    • Select File -> Open and pick the UPI Vault directory.
    • Allow Gradle to sync dependencies.
  3. Run Unit Tests:

    ./gradlew test
  4. Launch on Emulator / Device:

    • Press Run (Shift + F10) in Android Studio.

🧪 Testing

The repository includes unit tests for SMS parsing, transaction classification, and repository logic:

  • SmsParserEngineTest.kt: Tests multi-bank SMS regex matching and amount extraction.
  • TransactionRepositoryTest.kt: Verifies subscription detection, duplicate flagging, and metric aggregations.

Run tests via command line:

./gradlew testDebugUnitTest

🤝 Contributing

Contributions are welcome! If you'd like to improve bank SMS parsers, add new Compose components, or enhance categorisation models:

  1. Fork the Project.
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature).
  3. Commit your Changes (git commit -m 'Add some AmazingFeature').
  4. Push to the Branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

📄 License

Distributed under the MIT License. See LICENSE for details.


Crafted with ❤️ for India 🇮🇳

About

UPI Vault is a next-generation, local-first personal finance app built for Indian UPI users. Unlike traditional fintech applications that monetise your transaction history by selling loans or credit cards, UPI Vault operates completely offline and on-device.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages