GitHunt
AS

ashwinr-10/Finance_Platform_NEXT

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.

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

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

Homepage
Homepage
Homepage
Homepage
Homepage
Homepage
Homepage


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)
ashwinr-10/Finance_Platform_NEXT | GitHunt