A modern personal finance management application built with Next.js 16, featuring real-time currency conversion, comprehensive transaction tracking, and insightful financial analytics.
🔗 Live Demo: swiftfin-nextjs.vercel.app
- Visual statistics and charts displaying your financial overview
- Real-time currency conversion using the Frankfurter API
- All data displayed in USD by default with automatic conversion rates
- Theme support for personalized viewing experience
- Full CRUD operations for financial accounts
- Hierarchical account structure with parent account support
- Multi-currency support (USD/EUR)
- Detailed account views showing:
- Initial deposit
- Total income and expenses
- Transaction history
- Current balance
- Complete CRUD operations for transactions
- Advanced filtering system:
- Filter by transaction type (income/expense)
- Filter by account
- Filter by category
- Server-side pagination for optimal performance
- Transactions must be associated with an existing account
- Create and delete categories on-the-fly
- Assign categories to transactions or leave uncategorized
- Flexible category management within the transaction form
- Choose between USD or EUR for each account
- Automatic currency conversion via Frankfurter API
- EUR transactions are automatically converted to USD in dashboard view
- Real-time exchange rate updates
- Next.js 16 - React framework with App Router
- React 19 - Latest React features
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling
- shadcn/ui - High-quality UI components
- Next Themes - Dark/light mode support
- Prisma - Type-safe ORM
- Supabase - PostgreSQL database hosting
- Zod - Schema validation
- Clerk - Complete authentication solution
- Vercel - Serverless deployment platform
- Frankfurter API - Real-time currency exchange rates
- Node.js 18+
- npm/yarn/pnpm
- Supabase account
- Clerk account
- Clone the repository
git clone https://github.com/yourusername/swiftfin.git
cd swiftfin- Install dependencies
npm install- Set up environment variables
.envFill in your environment variables:
DATABASE_URL=
DIRECT_URL=
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
CLERK_WEBHOOK_SECRET=- Set up the database
npx prisma migrate dev- Run the development server
npm run devOpen http://localhost:3000 to view the application.
- Create an Account: Start by creating at least one financial account
- Add Transactions: Add income or expense transactions to your accounts
- Organize with Categories: Create categories to organize your transactions
- View Analytics: Check the dashboard for visual insights into your finances
- Filter & Search: Use the transaction page to filter and find specific transactions
- Multi-Currency: Create accounts in USD or EUR with automatic conversion
- React Server Components: Utilizes Next.js 16 App Router with Server Components for optimal performance
- Server-Side Pagination: Unlike many applications that use client-side pagination, SwiftFin implements server-side pagination for better performance with large datasets
- Real-Time Currency Conversion: Automatic conversion between EUR and USD using live exchange rates
- Hierarchical Accounts: Support for parent-child account relationships
- Flexible Categories: Dynamic category creation and management
- Modern UI/UX: Built with shadcn/ui and Tailwind CSS for a polished user experience
This project is licensed under the MIT License - see the LICENSE file for details.