Skip to content

harshxengr/Expense-Hero

Repository files navigation

💰 Expense Hero — AI-Powered Personal Finance

Next.js React TypeScript Prisma Tailwind CSS

Expense Hero is a modern, full-stack personal finance management application designed to give you total control over your wealth. Built with Next.js 15, React 19, and powered by Google Gemini AI, it simplifies expense tracking through intelligent automation.


✨ Key Features

  • 📊 Intelligent Dashboard: Get a high-level view of your financial health with real-time stats and visual trends.
  • AI Receipt Scanning: Snap a photo or upload a receipt, and let Google Gemini AI automatically extract the merchant, amount, and category.
  • Account Management: Support for multiple bank accounts and credit cards with seamless transaction tracking.
  • 📈 Smart Budgeting: Set monthly budgets and track progress with automated alerts and visual progress bars.
  • 🔄 Recurring Transactions: Automate your monthly income and bills with built-in recurring transaction support.
  • Advanced Analytics: Detailed breakdown of spending habits by category and time, powered by Recharts.
  • Secure Authentication: Robust user management and social login (Google) powered by Better-Auth.
  • 🛡️ Advanced Protection: Enterprise-grade rate limiting and bot protection using Arcjet.
  • 📧 Personalized Notifications: Transaction confirmations and budget alerts delivered via Inngest and Resend.

🛠️ Tech Stack

Core

Infrastructure & Services

UI/UX


🚀 Getting Started

Prerequisites

  • Node.js 18.x or later
  • A PostgreSQL database instance
  • API Keys for Google Gemini, Resend, and Better-Auth

Installation

  1. Clone the repository:

    git clone https://github.com/harshxengr/expense-hero.git
    cd expense-hero
  2. Install dependencies:

    npm install
  3. Set up Environment Variables: Create a .env.local file in the root directory and add the following:

    DATABASE_URL="postgresql://..."
    
    # AI
    GEMINI_API_KEY="..."
    
    # Better-Auth
    BETTER_AUTH_SECRET="..."
    BETTER_AUTH_URL="http://localhost:3000"
    
    # Google Auth (Optional)
    GOOGLE_CLIENT_ID="..."
    GOOGLE_CLIENT_SECRET="..."
    
    # Resend & Inngest
    RESEND_API_KEY="..."
    INNGEST_EVENT_KEY="..."	# If applicable
    INNGEST_SIGNING_KEY="..."	# If applicable
  4. Initialize Database:

    npx prisma generate
    npx prisma db push
  5. Run the Development Server:

    npm run dev

Open http://localhost:3000 with your browser to see the result.


📁 Project Structure

├── actions/         # Server Actions for data mutations
├── app/            # Next.js 15 App Router (Routes & Pages)
│   ├── (auth)/     # Authentication routes
│   └── (main)/     # Core application features (Dashboard, Account, etc.)
├── components/     # Reusable UI & Custom components
├── emails/         # React Email templates
├── hooks/          # Custom React hooks
├── lib/            # Configuration (Auth, Prisma, Inngest, Utils)
├── prisma/         # Database schema
└── public/         # Static assets

📜 Available Scripts

  • npm run dev - Starts the development server with Turbopack.
  • npm run build - Creates an optimized production build.
  • npm run start - Starts the production server.
  • npm run lint - Runs the Biome linter and checks for issues.
  • npm run format - Automatically formats the codebase using Biome.
  • npm run type-check - Runs TypeScript type checking.
  • npm run email - Starts the React Email preview server.

📸 UI Preview

Dashboard Preview


📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Expense Hero is a modern, full-stack personal finance management application designed to give you total control over your wealth.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors