A modern, full-stack finance application built with Next.js 15, specialized in multi-currency tracking, AI-powered insights, and automated transaction categorization.
- Multi-Currency Support: Track accounts and transactions in any currency (USD, AUD, EUR, etc.) with automatic base currency conversion.
- Account Types: Manage Bank Accounts, Cash, Mobile Wallets, Credit Cards, Savings, and Investments.
- Transaction Handling: Record Income, Expenses, and Transfers between accounts.
- Category Management: Hierarchical categories with custom icons and types.
- Payee Management: Track who you pay or receive money from.
- Smart Categorization: Automatically suggests categories for new transactions based on description and history.
- Natural Language Input: "Lunch 12.85 AUD at KFC" automatically parses into a structured transaction.
- Financial Insights: AI analysis of spending patterns, anomalies, and monthly summaries.
- Chat Assistant: Integrated AI chat to query your financial data and ask questions about your spending.
- Real-time Dashboard: Overview of net worth, recent activity, and spending trends.
- Visual Reports: Charts and graphs for income vs expenses, category breakdowns, and more.
- Savings Goals: Track progress towards financial targets.
- Subscription Tracker: Manage recurring payments and billing cycles.
- Secure Authentication: Powered by Better-Auth with Google OAuth support.
- Cloudflare Turnstile: Bot protection on sign-in and registration forms.
- Data Privacy: Granular control over user data with export and wipe options.
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Database: PostgreSQL
- ORM: Drizzle ORM
- Styling: Tailwind CSS + Shadcn UI
- Authentication: Better-Auth
- Forms: React Hook Form + Zod
- State Management: TanStack Query
- Charts: Recharts
- Node.js 18+
- PostgreSQL database
- Yarn or NPM
-
Clone the repository
git clone https://github.com/InnvoTechnologies/expenseflow.git cd expenseflow -
Install dependencies
yarn install
-
Set up environment variables Copy the
.env.examplefile to.envand fill in the values -
Run Database Migrations
yarn drizzle-kit migrate
-
Start Development Server
yarn dev
Open http://localhost:3000 to view the app.
src/
├── app/ # Next.js App Router pages and API routes
├── components/ # Reusable UI components (Shadcn + Custom)
├── db/ # Drizzle schema and database connection
├── hooks/ # Custom React hooks
├── lib/ # Utility functions, auth client, and API helpers
└── server/ # Server-side logic and actions
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
This project is licensed under the MIT License - see the LICENSE file for details.
