A full-stack personal finance dashboard with Supabase auth/storage, expense tracking, portfolio simulation, optimization analytics, and Gemini-powered market forecasts.
- Supabase auth: Email/password sign-in and Google OAuth
- Onboarding flow: Capture currency, income, budget, goals, and risk tolerance
- Profile editor: Update settings, avatar, and theme preference
- Portfolio snapshot: Current value, gain/loss, and allocation breakdown
- Budget insights: Monthly spend vs budget and net cash flow
- Recent activity: Quick glance at latest expenses
- Manual entry with metadata: Merchant, payment method, notes, tags
- Recurring + split expenses: Schedule repeats and split transactions
- Automation rules: Auto-apply categories/metadata based on matching rules
- Imports & exports: CSV/Excel import, CSV export, PDF report
- Attachments: Upload receipts to Supabase Storage
- Bulk actions: Inline edits, undo/redo, trash/restore, filters
- Simulated trades: Buy/sell holdings backed by Supabase data
- Live quotes & search: Finnhub-powered symbol lookup and pricing
- Performance charts: Historical portfolio value using candle data
- Allocation analytics: Diversification and holdings breakdown
- Mean-variance model: Efficient frontier from 6 months of price history
- Risk slider: Adjust target volatility to match tolerance
- Rebalancing plan: Suggested target weights and deltas
- Gemini forecasts: Price projections with confidence bands
- Sentiment & insights: AI-generated market takeaways
- Data requirements: Uses historical candles from Twelve Data or Finnhub
- Responsive UI: Works across desktop and mobile
- Interactive charts: Chart.js-based visualizations
- Finance-friendly visuals: Gains/losses color coding and clear metrics
- React 18.3.1 - Hooks-first UI
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling
- Vite - Fast dev server and builds
- Supabase - Auth, Postgres, and Storage
- Finnhub - Live quotes and symbol search
- Twelve Data - Historical candles (optional)
- Google Gemini - AI forecasts and insights
- Shadcn/UI + Radix UI - Accessible primitives
- Chart.js + React Chart.js 2 - Line/bar charts
- Lucide React - Icon library
- ESLint - Linting
- React Hook Form - Form helpers
- Date-fns - Date utilities
src/
โโโ components/ # Reusable UI components
โ โโโ ui/ # Base UI components (shadcn)
โ โโโ DashboardOverview.tsx
โ โโโ ExpenseTracker.tsx
โ โโโ PortfolioView.tsx
โ โโโ OptimizationView.tsx
โ โโโ PredictionsView.tsx
โโโ pages/ # Page components
โโโ hooks/ # Custom React hooks
โโโ lib/ # Utility functions
โโโ types/ # Shared types
โโโ assets/ # Static assets
- Node.js (v18 or higher)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/Zurab1K/Finance-Tracker.git cd Finance-Tracker -
Install dependencies
npm install
-
Create your environment file
cp .env.example .env
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:8080
Set values in .env (see .env.example):
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_FINNHUB_API_KEY=your_finnhub_api_key
VITE_TWELVE_DATA_API_KEY=your_twelve_data_api_key
VITE_GEMINI_API_KEY=your_gemini_api_key
VITE_GEMINI_MODEL=gemini-1.5-flash
VITE_GEMINI_API_VERSION=v1Notes:
VITE_SUPABASE_URLandVITE_SUPABASE_ANON_KEYare required for auth and data storage.VITE_FINNHUB_API_KEYenables symbol search and live quotes.VITE_TWELVE_DATA_API_KEYenables historical candle data (optional; Finnhub can be used instead).VITE_GEMINI_API_KEYenables AI forecasts and insights.
Follow the schema and storage setup instructions in SUPABASE_SETUP.md.
npm run buildThe build artifacts will be stored in the dist/ directory.
- Dashboard: Overview of your financial health
- Expenses: Track and categorize your spending
- Portfolio: Monitor your investments
- Optimization: Optimize your portfolio allocation
- AI Predictions: View Gemini-generated forecasts
- Add Expenses: Click the "+" button to log new expenses
- View Portfolio: Monitor real-time portfolio performance
- Optimize Allocation: Use the risk slider to find optimal asset allocation
- Check Predictions: Review AI forecasts for informed decision-making
This project is proprietary and not licensed for use, modification, or distribution without prior written permission. See LICENSE for details.
Created by Zurabi Kochiashvili