Skip to content

Vishwas-Chakilam/SpendSense

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ฐ Spendsense

AI-Powered Expense Tracker with Gamification

A modern Progressive Web App (PWA) and Android app that makes personal finance management fun and intuitive

Live Demo React TypeScript Vite PWA Android


โœจ Features

๐Ÿค– AI-Powered Receipt Scanning

  • Snap a photo of your receipt and let Google Gemini AI extract transaction details automatically
  • Automatic categorization and data extraction
  • No more manual data entry!

๐Ÿ“Š Smart Analytics & Insights

  • Visual charts showing your spending patterns over time
  • AI-generated personalized financial advice
  • Category-wise expense breakdown with interactive charts
  • Time-based filtering (Week/Month/Year)

๐ŸŽฎ Gamification

  • Earn points for tracking transactions
  • Unlock achievements and badges
  • Build daily streaks to stay consistent
  • Unlock new avatars as you progress
  • Level up system based on points

๐Ÿ’ฐ Budget Management

  • Set weekly, monthly, or yearly budget limits
  • Category-specific budget controls
  • Real-time budget tracking and progress indicators
  • Budget alerts when limits are exceeded

๐Ÿ“ฑ Progressive Web App (PWA)

  • Install directly on your phone or desktop
  • Works offline with service worker caching
  • Auto-updates with background sync
  • Native app-like experience
  • No app store needed for web version!

๐Ÿค– Android App

  • Native Android app built with Trusted Web Activity (TWA)
  • Full-screen experience without browser UI
  • Deep linking support
  • Available as APK or ready for Google Play Store

๐Ÿ“ค Data Export

  • Export transactions to PDF
  • Export transactions to Excel
  • Full control over your financial data

๐Ÿ”’ Privacy-First

  • All data stored locally on your device
  • No cloud sync, no servers
  • Complete privacy and data ownership

๐Ÿš€ Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn
  • Google Gemini API Key (for AI features)

Installation

  1. Clone the repository

    git clone https://github.com/Vishwas-Chakilam/SpendSense.git
    cd SpendSense
  2. Install dependencies

    npm install
  3. Set up environment variables

    Create a .env.local file in the root directory:

    GEMINI_API_KEY=your_gemini_api_key_here

    Get your API key from Google AI Studio

  4. Run the development server

    npm run dev
  5. Open your browser

    Navigate to http://localhost:3000

Building for Production

npm run build

The built files will be in the dist directory. The PWA manifest and service worker will be automatically generated.

Building Android App

To build the Android app, see the comprehensive Android Setup Guide. Quick steps:

  1. Install Bubblewrap CLI: npm install -g @bubblewrap/cli
  2. Navigate to android folder: cd android
  3. Build APK: bubblewrap build --universalApk

For detailed instructions, see ANDROID_SETUP.md.


๐Ÿ“ฒ Installation Options

Option 1: Install as PWA (Web)

On Mobile (Android/iPhone)

  1. Open the app in your browser: https://spendsense-one.netlify.app
  2. Android (Chrome):
    • Tap the menu (โ‹ฎ) in the top right
    • Select "Install app" or "Add to Home screen"
    • Confirm installation
  3. iPhone (Safari):
    • Tap the Share button (square with arrow)
    • Scroll down and tap "Add to Home Screen"
    • Tap "Add" to confirm

On Desktop (Chrome/Edge)

  1. Visit https://spendsense-one.netlify.app
  2. Look for the install icon (โŠ•) in the address bar
  3. Click it and select "Install"
  4. The app will open in its own window, just like a native app!

Option 2: Install Android App (APK)

  1. Download the APK from the releases or build it yourself (see Android Setup Guide)
  2. Enable installation from unknown sources on your Android device:
    • Go to Settings โ†’ Security โ†’ Enable "Install from unknown sources"
  3. Install the APK by tapping on the downloaded file
  4. Launch Spendsense from your app drawer

Note: The Android app provides a full-screen native experience without browser UI. For building your own APK, see the Android Setup Guide.


๐Ÿ› ๏ธ Tech Stack

  • Frontend Framework: React 19.2.1
  • Language: TypeScript 5.8
  • Build Tool: Vite 6.2
  • Styling: Tailwind CSS
  • Charts: Recharts
  • AI Integration: Google Gemini AI
  • PDF Export: jsPDF
  • Excel Export: xlsx
  • PWA: Vite PWA Plugin with Service Worker + Web App Manifest
  • Android: Bubblewrap CLI + Trusted Web Activity (TWA)

๐Ÿ“ Project Structure

spendsense/
โ”œโ”€โ”€ android/             # Android TWA project (Bubblewrap)
โ”‚   โ”œโ”€โ”€ app/             # Android app source code
โ”‚   โ”œโ”€โ”€ gradle/          # Gradle wrapper
โ”‚   โ”œโ”€โ”€ twa-manifest.json  # TWA configuration
โ”‚   โ””โ”€โ”€ build.gradle     # Build configuration
โ”œโ”€โ”€ components/          # Reusable React components
โ”‚   โ”œโ”€โ”€ AddTransactionModal.tsx
โ”‚   โ”œโ”€โ”€ Icons.tsx
โ”‚   โ”œโ”€โ”€ Layout.tsx
โ”‚   โ””โ”€โ”€ Tour.tsx
โ”œโ”€โ”€ services/            # Business logic and API services
โ”‚   โ”œโ”€โ”€ exportService.ts
โ”‚   โ”œโ”€โ”€ geminiService.ts
โ”‚   โ””โ”€โ”€ storageService.ts
โ”œโ”€โ”€ views/               # Main page views
โ”‚   โ”œโ”€โ”€ Analytics.tsx
โ”‚   โ”œโ”€โ”€ Dashboard.tsx
โ”‚   โ”œโ”€โ”€ Onboarding.tsx
โ”‚   โ”œโ”€โ”€ Profile.tsx
โ”‚   โ””โ”€โ”€ Transactions.tsx
โ”œโ”€โ”€ public/              # Static assets and PWA files
โ”‚   โ”œโ”€โ”€ .well-known/     # TWA validation files
โ”‚   โ”‚   โ””โ”€โ”€ assetlinks.json
โ”‚   โ”œโ”€โ”€ web-app-manifest-192x192.png
โ”‚   โ”œโ”€โ”€ web-app-manifest-512x512.png
โ”‚   โ””โ”€โ”€ logo.png
โ”œโ”€โ”€ App.tsx              # Main app component
โ”œโ”€โ”€ index.tsx            # Entry point
โ”œโ”€โ”€ types.ts             # TypeScript type definitions
โ”œโ”€โ”€ constants.tsx        # App constants and configurations
โ”œโ”€โ”€ vite.config.ts       # Vite configuration with PWA plugin
โ”œโ”€โ”€ ANDROID_SETUP.md     # Android app setup guide
โ””โ”€โ”€ README.md            # This file

๐ŸŽฏ Key Features Explained

AI Receipt Scanning

Uses Google Gemini AI to analyze receipt images and extract:

  • Transaction amount
  • Date
  • Merchant name
  • Category (automatically categorized)

Gamification System

  • Points: Earn 100 points per achievement unlocked
  • Badges: Unlock badges for milestones (first transaction, 50+ transactions, big purchases, savings, streaks)
  • Streaks: Track consecutive days of logging transactions
  • Avatars: Unlock new avatars by earning points or badges

Budget Tracking

  • Set overall budget limits for different periods
  • Optional category-specific limits
  • Visual progress indicators
  • Real-time budget status

๐Ÿ“š Documentation

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  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

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


๐Ÿ‘จโ€๐Ÿ’ป Developer

Vishwas Chakilam


๐Ÿ™ Acknowledgments

  • Google Gemini AI for powering the receipt scanning and insights
  • React and Vite communities for amazing tools
  • All contributors and users of Spendsense

Made with โค๏ธ using React, TypeScript, and AI

โญ Star this repo if you find it helpful!