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
CashLens is packed with features designed to give you control over your financial life:
-
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.
-
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).
-
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.
-
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.
-
Local Processing: Parses UPI and bank SMS alerts directly in the browser.
-
Zero Data Collection: No financial data is uploaded to external servers.
-
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.
-
Redux Toolkit: State management for complex flows.
-
React Router DOM: Client-side routing.
-
Recharts: Interactive and responsive charts.
-
Lucide React: Beautiful, consistent iconography.
-
Radix UI: Accessible UI primitives for Modals and Popovers.
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 configurationFollow these instructions to run the project locally. Download
β£ Node.js (v16 or higher)
β£ npm or yarn
- Clone the repository
git clone https://github.com/yourusername/cashlens.git
cd cashlens
- Install dependencies
npm install
- Start the development server
npm run start
The app should now be running at http://localhost:4028.
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.
You can deploy CashLens to any static hosting provider. Below are instructions for Netlify and AWS.
Netlify is the easiest way to deploy this project because it handles the _redirects automatically.
-
Push your code to GitHub/GitLab/Bitbucket.
-
Log in to Netlify.
-
Click "Add new site" β "Import an existing project".
-
Select your Git provider and choose the CashLens repository.
-
Configure Build Settings:
-
Base directory:
/(leave empty) -
Build command:
npm run build -
Publish directory:
build(Note: Yourvite.config.mjssets output tobuild, notdist).
-
-
Click Deploy Site.
The included public/_redirects file handles Single Page Application (SPA) routing automatically.
AWS Amplify allows you to host full-stack apps easily.
-
Log in to the AWS Console and search for AWS Amplify.
-
Click "Create new app" (or "Host web app").
-
Select GitHub (or your provider) and authorize AWS.
-
Select the CashLens repository and branch (main).
-
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).
- Click Save and Deploy.
-
Once deployed, go to App settings > Rewrites and redirects in the Amplify console.
-
Click Edit.
-
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)
-
-
Save. This ensures refreshing a page like
/budget-settingsworks correctly.
|
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 |
CashLens is architected with a Local-First philosophy:
-
Local Processing: All data parsing (SMS, inputs) happens within the user's browser memory.
-
No Cloud Storage: By default, we do not store your transaction history on our servers.
-
Transparency: The codebase is open for audit to ensure no hidden data exfiltration occurs.
Contributions are welcome! Please feel free to submit a Pull Request.
-
Fork the project
-
Create your feature branch (
git checkout -b feature/AmazingFeature) -
Commit your changes (
git commit -m 'Add some AmazingFeature') -
Push to the branch (
git push origin feature/AmazingFeature) -
Open a Pull Request
Made with β€οΈ by CashLens

