Skip to content

WealthWise: AI Personal Finance Tracker, Budgeting & Expense Forecasting App. Track income/expenses, categorize transactions with AI, set budgets, and forecast spending. Built with Next.js, React, Firebase. Manage your money smarter.

Notifications You must be signed in to change notification settings

whitebeard10/WealthWise

Repository files navigation

WealthWise - Intelligent Finance Tracker

WealthWise is a modern web application designed to help users manage their personal finances effectively. It features intelligent transaction tracking, AI-powered insights, and robust user account management.

Core Features

  • Secure User Authentication: Email/Password based login, signup, and password recovery.
  • Interactive Dashboard: Overview of financial health, spending patterns, and recent activity.
  • Transaction Management: Add, edit, delete, and categorize transactions, with support for recurring entries.
  • AI-Powered Tools:
    • Automatic transaction categorization.
    • Expense forecasting.
  • Budgeting Module: Create and manage monthly budgets.
  • Profile Management: View account details, change password, and export transaction data.
  • Responsive Design: Optimized for various devices with a light/dark mode toggle.

Tech Stack

  • Framework: Next.js (App Router)
  • UI Library: React
  • Component Library: shadcn/ui
  • Styling: Tailwind CSS
  • State Management: React Context API
  • Forms: React Hook Form with Zod
  • AI Integration: Genkit
  • Database: Firebase Firestore
  • Authentication: Firebase Authentication
  • Charting: Recharts

Project Setup

1. Prerequisites

  • Node.js (v18 or later recommended)
  • npm or yarn

2. Firebase Project Setup

  1. Create a Firebase project at console.firebase.google.com.
  2. Enable Authentication: In your Firebase project, enable the "Email/Password" sign-in provider.
  3. Enable Firestore: Create a Firestore database. Start in Production mode and choose a location.
  4. Set Firestore Security Rules: Secure your transactions and budgets collections. Ensure only authenticated users can access their own data. Example for a collection:
    match /collectionName/{docId} {
      allow read, update, delete: if request.auth != null && request.auth.uid == resource.data.userId;
      allow create: if request.auth != null && request.auth.uid == request.resource.data.userId;
    }
    Publish these rules.
  5. Create Firestore Indexes: The application may require composite indexes for certain queries (e.g., for transactions or budgets). Firestore will typically log an error in the browser console with a direct link to create any missing indexes if they are needed.

3. Environment Variables

  1. In the root of your project, create a file named .env.local.

  2. Add your Firebase configuration keys. These are typically prefixed with NEXT_PUBLIC_:

    NEXT_PUBLIC_FIREBASE_API_KEY=
    NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
    NEXT_PUBLIC_FIREBASE_PROJECT_ID=
    NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
    NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
    NEXT_PUBLIC_FIREBASE_APP_ID=
    
    # If your Genkit flows use a Google AI API key:
    # GOOGLE_API_KEY=

    Fill in the values from your Firebase project settings.

Getting Started Locally

  1. Clone the repository (once pushed to GitHub):

    git clone https://github.com/whitebeard10/WealthWise.git
    cd WealthWise

    (Or, if you've downloaded the code, navigate to its root directory.)

  2. Install dependencies:

    npm install
    # or
    # yarn install
  3. Run the Next.js development server:

    npm run dev

    The application will typically be available at http://localhost:9002.

  4. (Optional) Run the Genkit development server: If working on AI features, run Genkit in a separate terminal:

    npm run genkit:dev

Available Scripts

  • npm run dev: Runs the app in development mode.
  • npm run build: Builds the app for production.
  • npm run start: Starts the production server.
  • npm run lint: Lints the project files.
  • npm run genkit:dev: Starts the Genkit development server.

Folder Structure (Simplified)

WealthWise/
├── src/
│   ├── ai/                 # Genkit AI flows
│   ├── app/                # Next.js App Router pages & layouts
│   ├── components/         # UI components (including shadcn/ui)
│   ├── contexts/           # React Context providers
│   ├── hooks/              # Custom React hooks
│   ├── lib/                # Utilities, Firebase client, type definitions
│   └── ...
├── public/                 # Static assets
├── .env.local              # Local environment variables (Git ignored)
└── ...                     # Config files (next.config.ts, tailwind.config.ts, etc.)

Contact

For further understanding of the project or collaboration inquiries, please reach out:


This README provides a general overview. Specific implementation details and advanced configurations may require deeper exploration of the codebase. Contach me in case you need further calirification or assistane on this.

About

WealthWise: AI Personal Finance Tracker, Budgeting & Expense Forecasting App. Track income/expenses, categorize transactions with AI, set budgets, and forecast spending. Built with Next.js, React, Firebase. Manage your money smarter.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages