Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’Έ CashLens

Your Privacy-First AI Financial Companion. CashLens helps you track expenses, manage subscriptions, and gain AI-powered financial insights without your data ever leaving your device.


πŸ“– Table of Contents

✨ Features

CashLens is packed with features designed to give you control over your financial life:

πŸ“Š Smart Transaction Dashboard

  • Visual Analytics: View monthly spending trends, category distribution (Pie Charts), and daily/weekly breakdowns.

  • Top Merchants: Identify where you spend the most money.

  • Quick Actions: Easily export data to CSV or manage categories.

🧠 Financial Insights & AI

  • AI Coach: Receive personalized warnings (e.g., "Food Delivery Overspending") and savings recommendations.

  • Anomaly Detection: Automatically flags suspicious transactions (high value, unusual time, or location).

  • Health Score: Get a credit-score-like rating for your financial health (0-100).

πŸ’° Budgeting & Categories

  • Category Management: Edit transaction categories with confidence scores. Supports bulk editing.

  • Budget Alerts: Set custom thresholds (e.g., alert at 80% usage) for specific categories like Food, Travel, or Shopping.

  • Spending Comparison: Compare current spending against historical averages.

πŸ”„ Subscription Tracker

  • Recurring Payments: Track Netflix, Spotify, Gym memberships, and more.

  • Usage Detection: Identify "Unused" or "Hidden" subscriptions to save money.

  • Reminders: See next payment dates and annual cost projections.

πŸ“± Privacy-First SMS Parsing

  • Local Processing: Parses UPI and bank SMS alerts directly in the browser.

  • Zero Data Collection: No financial data is uploaded to external servers.


πŸ› οΈ Tech Stack

Frontend Core:

  • React 18: Component-based UI architecture.

  • Vite: Blazing fast build tool and development server.

  • Tailwind CSS: Utility-first styling for a modern, dark-mode ready design.

Data & State:

  • Redux Toolkit: State management for complex flows.

  • React Router DOM: Client-side routing.

Visualization & UI:

  • Recharts: Interactive and responsive charts.

  • Lucide React: Beautiful, consistent iconography.

  • Radix UI: Accessible UI primitives for Modals and Popovers.


πŸ“‚ Project Structure

The project is organized to ensure scalability and maintainability. Here is an overview of the directory layout:

cashlens/
β”œβ”€β”€ public/                      # Static files
β”‚   β”œβ”€β”€ _redirects               # SPA routing for Netlify
β”‚   β”œβ”€β”€ manifest.json            # PWA settings
β”‚   └── robots.txt               # SEO rules
β”‚
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/              # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ ui/                  # Buttons, Inputs, Modals, etc.
β”‚   β”‚   β”œβ”€β”€ AppIcon.jsx
β”‚   β”‚   └── ErrorBoundary.jsx
β”‚   β”‚
β”‚   β”œβ”€β”€ pages/                   # Route-level screens
β”‚   β”‚   β”œβ”€β”€ budget-settings/
β”‚   β”‚   β”œβ”€β”€ category-management/
β”‚   β”‚   β”œβ”€β”€ financial-insights/
β”‚   β”‚   β”œβ”€β”€ sms-permission-setup/
β”‚   β”‚   β”œβ”€β”€ subscription-tracker/
β”‚   β”‚   β”œβ”€β”€ transaction-dashboard/
β”‚   β”‚   └── NotFound.jsx
β”‚   β”‚
β”‚   β”œβ”€β”€ styles/                  # Global styles
β”‚   β”‚   β”œβ”€β”€ index.css
β”‚   β”‚   └── tailwind.css
β”‚   β”‚
β”‚   β”œβ”€β”€ utils/                   # Helper functions (class merge, formatters, etc.)
β”‚   β”‚
β”‚   β”œβ”€β”€ App.jsx                  # App root
β”‚   β”œβ”€β”€ Routes.jsx               # Router config
β”‚   └── index.jsx                # Entry point
β”‚
β”œβ”€β”€ .env                         # Environment variables
β”œβ”€β”€ .gitignore                   # Git ignore rules
β”œβ”€β”€ index.html                   # Main HTML template
β”œβ”€β”€ package.json                 # Dependencies & scripts
β”œβ”€β”€ postcss.config.js            # PostCSS settings
β”œβ”€β”€ tailwind.config.js           # Tailwind config
└── vite.config.mjs              # Vite configuration

πŸš€ Getting Started

Follow these instructions to run the project locally. Download

Prerequisites

β€£ Node.js (v16 or higher)

β€£ npm or yarn

Installation

  1. Clone the repository
git clone https://github.com/yourusername/cashlens.git
cd cashlens
  1. Install dependencies
npm install
  1. Start the development server
npm run start

The app should now be running at http://localhost:4028.


βš™οΈ Configuration

Create a .env file in the root directory. You can use the provided template as a base.

Code snippet

# .env
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_key
VITE_OPENAI_API_KEY=your_openai_key  # Optional: For live AI features
Note: Since this is a client-side app, ensure your API keys have appropriate usage limits if exposed.

☁️ Deployment

You can deploy CashLens to any static hosting provider. Below are instructions for Netlify and AWS.

Option 1: Deploy to Netlify (Recommended)

Netlify is the easiest way to deploy this project because it handles the _redirects automatically.

  1. Push your code to GitHub/GitLab/Bitbucket.

  2. Log in to Netlify.

  3. Click "Add new site" β†’ "Import an existing project".

  4. Select your Git provider and choose the CashLens repository.

  5. Configure Build Settings:

    • Base directory: / (leave empty)

    • Build command: npm run build

    • Publish directory: build (Note: Your vite.config.mjs sets output to build, not dist).

  6. Click Deploy Site.

The included public/_redirects file handles Single Page Application (SPA) routing automatically.

Option 2: Deploy to AWS Amplify

AWS Amplify allows you to host full-stack apps easily.

  1. Log in to the AWS Console and search for AWS Amplify.

  2. Click "Create new app" (or "Host web app").

  3. Select GitHub (or your provider) and authorize AWS.

  4. Select the CashLens repository and branch (main).

  5. Build Settings: Amplify should auto-detect the settings, but verify:

YAML

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - npm install
    build:
      commands:
        - npm run build
  artifacts:
    baseDirectory: build
    files:
      - '**/*'

(Ensure baseDirectory is set to build).

  1. Click Save and Deploy.

Important: Fix Routing for SPA (React Router)

  1. Once deployed, go to App settings > Rewrites and redirects in the Amplify console.

  2. Click Edit.

  3. Add the following rule at the top of the list:

    • Source address: </^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|map|json)$)([^.]+$)/>

    • Target address: /index.html

    • Type: 200 (Rewrite)

  4. Save. This ensures refreshing a page like /budget-settings works correctly.


πŸ‘¨β€πŸ’» Meet the Team



Sneha Majumder
Leader & Java Developer

GitHub | LinkedIn


Snahasish Dey
Frontend Developer

GitHub | LinkedIn


Srijit Bhattacharya
Full-Stack Developer

GitHub | LinkedIn


Sania Ghosh
UI & UX Designer

GitHub | LinkedIn

πŸ”’ Privacy Policy

CashLens is architected with a Local-First philosophy:

  1. Local Processing: All data parsing (SMS, inputs) happens within the user's browser memory.

  2. No Cloud Storage: By default, we do not store your transaction history on our servers.

  3. Transparency: The codebase is open for audit to ensure no hidden data exfiltration occurs.


🀝 Contributing

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

  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


Made with ❀️ by CashLens

About

First Time Builder

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages