A comprehensive personal finance management application built with Next.js, designed to help users track, analyze, and optimize their financial health through intelligent budgeting, investment monitoring, and AI-powered insights.
- Dashboard: Comprehensive financial overview with interactive charts and key metrics
- Income Tracking: Record and monitor various income sources with recurring support
- Expense Management: Categorize and track expenses with detailed reporting
- Budget Planning: Create and monitor monthly budgets with visual progress indicators
- Account Management: Track multiple account types (cash, bank accounts, e-wallets)
- Investment Portfolio: Monitor investments, track transactions, and analyze performance
- Financial Goals: Set and track progress towards savings goals
- Debt Management: Track outstanding debts and payment schedules
- Multi-Currency Support: Handle multiple currencies with real-time exchange rate conversion
- AI-Powered Budget Recommendations: Get personalized budget suggestions based on your financial data, location, and goals
- Historical Analysis: Leverage past financial data for better planning and insights
- Interactive Charts: Visualize spending patterns, income distribution, and investment performance
- Responsive Design: Fully responsive interface that works on desktop and mobile devices
- Dark/Light Theme: Toggle between themes for comfortable viewing
The app supports comprehensive expense categorization including:
- Food & Drink
- Housing
- Utilities
- Transportation
- Clothing
- Leisure & Travel
- Technology
- Pets
- Health & Wellness
- Education
- Entertainment
- Gifts & Donations
- Personal Care
- Debt Payments
- Savings & Investments
- Miscellaneous
- Next.js 15 - React framework with App Router
- React 19 - UI library
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Modern UI component library built on Radix UI
- Recharts - Data visualization library
- Lucide React - Icon library
- Supabase - PostgreSQL database with real-time capabilities and authentication
- Supabase Auth - User authentication and authorization
- Edge Functions - Serverless functions for API endpoints
- Google Generative AI - AI-powered budget recommendations
- OpenAI - Alternative AI provider for enhanced insights
- Exchange Rate API - Real-time currency conversion
- ESLint - Code linting
- PostCSS - CSS processing
- TypeScript - Type checking
Before running this application, make sure you have:
- Node.js 18.x or later
- npm, yarn, pnpm, or bun package manager
- A Supabase account and project
git clone <repository-url>
cd finance-plannernpm install
# or
yarn install
# or
pnpm install
# or
bun installCreate a .env.local file in the root directory with your Supabase credentials:
NEXT_PUBLIC_SUPABASE_URL=your-supabase-project-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-supabase-service-role-key
# AI API Keys (optional - for enhanced AI features)
GOOGLE_GENERATIVE_AI_API_KEY=your-google-ai-api-key
OPENAI_API_KEY=your-openai-api-keyThe application uses Supabase as its database. You'll need to:
- Create a new Supabase project
- Run the database migrations (located in
supabase/migrations/) - Configure authentication settings
- Set up the required tables and functions
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the application.
finance-planner/
βββ src/
β βββ app/ # Next.js app router pages
β β βββ (app)/ # Protected app routes
β β β βββ dashboard/ # Main dashboard
β β β βββ income/ # Income management
β β β βββ spending/ # Expense tracking
β β β βββ budgets/ # Budget planning
β β β βββ accounts/ # Account management
β β β βββ investments/ # Investment portfolio
β β β βββ goals/ # Financial goals
β β β βββ settings/ # User settings
β β βββ api/ # API routes
β β β βββ ai/ # AI-powered endpoints
β β βββ auth/ # Authentication pages
β β βββ globals.css # Global styles
β βββ components/ # Reusable UI components
β β βββ ui/ # Base UI components (shadcn/ui)
β β βββ dashboard/ # Dashboard-specific components
β β βββ forms/ # Form components
β β βββ layout/ # Layout components
β β βββ [feature]/ # Feature-specific components
β βββ lib/ # Utility libraries
β β βββ supabase/ # Supabase client configuration
β β βββ ai/ # AI service integrations
β β βββ utils.ts # General utilities
β βββ services/ # Business logic services
β βββ types/ # TypeScript type definitions
β βββ config/ # Configuration files
βββ supabase/ # Supabase configuration
β βββ migrations/ # Database migrations
β βββ functions/ # Edge functions
βββ public/ # Static assets
βββ package.json # Dependencies and scripts
npm run dev- Start the development servernpm run build- Build the application for productionnpm start- Start the production servernpm run lint- Run ESLint for code linting
The main dashboard provides:
- Financial health overview
- Income vs spending analysis
- Budget performance tracking
- Investment allocation charts
- Quick actions for common tasks
The AI-powered budget recommendation system:
- Analyzes user income, expenses, and location
- Considers household size and financial goals
- Provides personalized budget allocations
- Uses historical data when available
- Supports custom instructions for specific needs
- Supports multiple currencies with USD as base reporting currency
- Real-time exchange rate fetching
- Automatic currency conversion for all financial data
- User-preferred currency settings
The application uses Supabase Auth for user authentication, providing:
- Secure user registration and login
- Password reset functionality
- Session management
- Protected routes
Built-in charts and graphs include:
- Spending distribution pie charts
- Income trend line charts
- Budget progress bars
- Investment performance charts
- Financial health indicators
- Connect your GitHub repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy automatically on push
The application can be deployed to any platform supporting Next.js:
- Netlify
- Railway
- Self-hosted with Docker
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any questions or need help:
- Open an issue on GitHub
- Check the documentation
- Review the codebase for implementation details
Planned features include:
- Advanced financial reporting and analytics
- Integration with financial institutions (Plaid, etc.)
- Mobile app companion
- Advanced AI insights and predictions
- Multi-user household accounts
- Export functionality for tax preparation