AI-powered financial coaching web app that analyzes your spending, detects risks, and provides personalized recommendations.
- π Smart Dashboard - 4-tab analytics (Overview, Insights, Goals, Trends)
- π Visual Analytics - Interactive charts (expense pie chart, cashflow trends)
- π€ AI Analysis - Multi-agent system powered by Gemini 2.0 Flash
β οΈ Risk Detection - Identifies overspending, high subscriptions, low savings- π‘ Personalized Recommendations - Actionable financial advice
- π― Goal Tracking - Monitor progress toward financial goals
- π Smart Reminders - Bill payment and subscription alerts
- π¬ AI Chatbot - Ask questions about your finances
- π PDF Reports - Downloadable financial summaries
- π Privacy First - All data stored locally in browser (IndexedDB)
- Node.js 18+ installed
- Gemini API key (get from Google AI Studio)
# Clone or navigate to project
cd finsight
# Install dependencies
npm install
# Set up environment variables
# Create .env.local file with:
GEMINI_API_KEY=your_gemini_api_key_here
# Run development server
npm run dev
# Open http://localhost:3000npm run build
npm startfinsight/
βββ app/
β βββ page.tsx # Landing & upload page
β βββ dashboard/page.tsx # Main dashboard
β βββ settings/page.tsx # Settings & data management
β βββ api/gemini/route.ts # Secure Gemini API proxy
β βββ layout.tsx # Root layout
βββ components/
β βββ ui/ # Reusable UI components
β β βββ Header.tsx
β β βββ Footer.tsx
β β βββ UploadCard.tsx
β β βββ ProgressBar.tsx
β βββ dashboard/ # Dashboard-specific components
β βββ MetricsOverview.tsx
β βββ CashflowChart.tsx
β βββ ExpensePieChart.tsx
β βββ RecommendationsList.tsx
β βββ RemindersList.tsx
β βββ IssuesList.tsx
βββ lib/
β βββ types/ # TypeScript type definitions
β βββ parsers/ # File parsers (PDF, CSV, Excel)
β βββ agent/ # AI agent logic
β β βββ prompts.ts # Agent prompt templates
β β βββ gemini.ts # Gemini API client
β β βββ orchestrator.ts # Multi-agent orchestration
β βββ storage.ts # IndexedDB utilities
β βββ notifications.ts # Browser notification helpers
βββ .env.local # API keys (not committed)
Upload PDF bank statements, CSV transaction exports, Excel files, or plain text invoices.
The Parser Agent extracts transaction data (dates, amounts, merchants) from your files using pattern matching and AI.
The Classifier Agent categorizes transactions into:
- Food & Groceries
- Dining & Restaurants
- Transportation & Travel
- Shopping & Retail
- Entertainment & Subscriptions
- Bills & Utilities
- Healthcare & Medical
- EMI & Loans
- Income sources
- And more...
The Analyzer Agent identifies:
β οΈ Overspending patterns- π³ High EMI burdens
- π Cashflow risks
- π Unused subscriptions
- π Spending trends
Get actionable tips like:
- "Reduce food delivery to 2x/week β Save βΉ2,000/month"
- "Cancel unused Zee5 subscription β Save βΉ99/month"
- "Set up automated βΉ600 weekly savings transfer"
Automatically scheduled reminders for:
- Bill due dates
- Savings transfers
- Budget reviews
- Subscription renewals
Processing Settings
- Auto-process uploads: Analyze files immediately after upload
- Enable reminders: Get browser notifications
Privacy Settings
- Server-allowed: Send data to Gemini AI (recommended)
- Browser-only: Limit AI features for maximum privacy
Data Management
- Export all data as JSON backup
- Import previously exported data
- Clear all data (permanent deletion)
βββββββββββββββββββ
β Master Agent β β Coordinates all agents
ββββββββββ¬βββββββββ
β
ββββββ΄βββββ¬βββββββββ¬βββββββββββ¬βββββββββββ
β β β β β
βββββΌββββ ββββΌβββ βββββΌβββββ βββββΌβββββ ββββΌβββββ
βParser β βClassβ βAnalyzerβ βRecommenβ βRemind β
β Agent β βifer β β Agent β βder β βer β
βββββββββ βββββββ ββββββββββ ββββββββββ βββββββββ
Agent Prompts (in lib/agent/prompts.ts):
- Structured JSON output schemas
- Low temperature (0.1-0.3) for deterministic results
- Context-aware prompts with user data
- Failsafe error handling
Gemini Integration:
- Model:
gemini-2.0-flash-exp - Temperature: 0.1 (deterministic)
- Max tokens: 2048-4096 per request
- Secure server-side API proxy
| Format | Extensions | Features |
|---|---|---|
.pdf |
Text extraction from bank statements | |
| CSV | .csv |
Auto-column detection for transactions |
| Excel | .xlsx, .xls |
Multi-sheet support |
| Text | .txt |
Free-form transaction data |
Max file size: 10MB per file
Processing: Client-side parsing (privacy-first)
β
LocalStorage Only: All user data stored in browser IndexedDB
β
No Server DB: Zero data persistence on servers
β
API Key Security: Gemini key stored in server env vars
β
Data Control: Export/import/delete anytime
β
Privacy Mode: Option to disable server processing
What's Sent to AI?
- Only extracted transaction text (not raw files)
- Categorized, anonymized data
- No personally identifiable information (if properly redacted)
What's NOT Sent?
- Raw file contents
- Your files themselves
- Any data if privacy mode = "browser-only"
- Framework: Next.js 16 (App Router)
- Frontend: React 19 + TypeScript
- Styling: Tailwind CSS 4
- AI: Google Gemini 2.0 Flash
- Storage: IndexedDB (via idb-keyval)
- Charts: Recharts
- Parsing: pdfjs-dist, papaparse, xlsx
- Date handling: date-fns
- Upload Recent Data: Last 3-6 months for accurate analysis
- Clean Files: Remove sensitive info before upload (optional)
- Regular Updates: Upload new statements monthly
- Review Recommendations: Act on high-impact tips first
- Enable Notifications: Get timely bill reminders
Files not processing?
- Check file format (PDF, CSV, Excel, TXT only)
- Ensure file size < 10MB
- Try uploading one file at a time
No AI insights?
- Verify
GEMINI_API_KEYin.env.local - Check browser console for errors
- Ensure privacy mode = "server-allowed"
Dashboard shows no data?
- Upload files first from homepage
- Check browser IndexedDB (DevTools > Application)
- Try clearing data and re-uploading
- Multi-currency support
- Budget planning tools
- Investment portfolio tracking
- Chat assistant for Q&A
- PWA support for offline usage
- Calendar integration for reminders
- PDF report generation
- Spending trend predictions
MIT License - feel free to use for personal or commercial projects.
- Gemini AI by Google for powerful language models
- Next.js team for the amazing framework
- Vercel for hosting solutions
- Open source community for excellent libraries
For issues or questions:
- Check existing issues on GitHub
- Create new issue with details
- Provide error logs and file samples (redacted)
If this project helped you, please:
- β Star the repository
- π Report bugs
- π‘ Suggest features
- π Contribute code
Built with β€οΈ by the FinWise team
Last updated: November 29, 2025