Finvestt โ Finance Platform
Finvestt is a modern personal finance management platform built with Next.js, Prisma + PostgreSQL + Supabase, Clerk authentication, Google Gemini AI, ArcJet, Inngest, and Resend email.
Users can manage multiple bank accounts, track income/expenses, set monthly budgets, receive alerts, and generate recurring transactions. The UI is built using shadcn/ui and includes visualizations with Recharts.
Live Demo
https://finvestt.vercel.app/
๐ฅ Project Video
Finvestt.mp4
Table of Contents
- Overview
- Features
- Tech Stack
- System Architecture
- Screenshots
- Environment Variables
- Installation
- Inngest Background Jobs
- Email Templates
- Deployment
- Future Enhancements
Overview
Finvestt helps users manage multiple bank accounts, record income/expenses, set monthly budgets, scan receipts using AI (Gemini), and view charts and transaction tables per account. Users authenticate with Clerk. Sensitive operations are protected by ArcJet (rate-limiting / bot protection). Emails are sent with Resend.
Features
- Multi-account management (current / savings)
- Create / update / delete transactions (income & expense)
- Recurring transactions (daily / weekly / monthly / yearly)
- Receipt scanning (image โ parsed JSON) via Google Gemini
- Budget per user + progress UI and alerts
- Bulk delete transactions with proper balance reconciliation
- Default account toggle
- Protected server actions (Clerk auth + ArcJet checks)
- Transactional emails via Resend
- Background jobs (Inngest) for recurring transactions & reports
Tech Stack
Frontend
- Next.js (app router) โ React server & client components
- Tailwind CSS + shadcn/ui
- Recharts, react-hook-form, zod, sonner
Backend
- Next.js server actions
- Prisma ORM (PostgreSQL) โ can use Supabase as the Postgres provider
- Inngest for background tasks
- Google Gemini for receipt OCR
- Resend for emails
- ArcJet for request protection
Database hosting (options)
- Self-managed Postgres / Hosted Postgres (Neon, Railway, AWS RDS)
- Supabase (managed Postgres + Storage + Realtime) โ supported and recommended if you want integrated file storage / storage rules
System Architecture
Client (Next.js + Clerk)
Server Actions / API (Next.js)
Prisma โ PostgreSQL
ArcJet (rate-limits)
Google Gemini (OCR)
Inngest (jobs)
Resend (emails)
Recharts
Clerk
Shadcn UI
Tailwind
Supabase Storage
Screenshots
Environment Variables
Create a .env file at project root. This includes Supabase options if you choose Supabase.
# Database (Postgres or Supabase Postgres connection string)
DATABASE_URL="postgresql://postgres:password@db.xyz.supabase.co:5432/postgres?schema=public"
DIRECT_URL="postgresql://postgres:password@db.xyz.supabase.co:5432/postgres"
# Clerk (auth)
CLERK_SECRET_KEY=your_clerk_secret_key
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
# Google Gemini (receipt OCR)
GEMINI_API_KEY=your_gemini_api_key
# ArcJet
ARCJET_KEY=your_arcjet_key
# Resend (emails)
RESEND_API_KEY=your_resend_api_key
---Installation
1. Clone Repository
git clone https://github.com/ashwinr-10/Finance_Platform_NEXT.git
cd Finance_Platform_NEXT
2. Install dependencies
npm install
3. Create .env
4. Generate Prisma client
npx prisma generate
Inngest Background Jobs
processRecurringTransaction โ process a single recurring transaction
triggerRecurringTransactions โ scheduled job to create due recurring transactions
generateMonthlyReports โ build and send monthly report (Resend)
checkBudgetAlerts โ alert users when budget thresholds are crossed
Analytics (Recharts)
Transaction Overview Chart
Income vs Expense
Monthly Expense Breakdown (Pie Chart)
Recent Transactions
AI Receipt Scanning (Gemini)
Gemini extracts:
{
"amount": 399.99,
"date": "2024-05-10",
"description": "Recharge",
"merchantName": "Jio",
"category": "utilities"
}
Email Templates
Supports:
Monthly Report
Budget Alert
Deployment
Vercel (recommended)
Add all environment variables in Vercel Dashboard.
For Supabase, set DATABASE_URL to Supabase Postgres connection string and SUPABASE_* keys.
npx prisma migrate deploy should be run as part of deployment pipeline.
Database
Supabase
Future Enhancements
Bank sync
Auto-categorization using ML
Mobile App (React Native)
Multi-currency mode
Export reports (PDF, CSV)






