Skip to content

csxark/Wealth-Vault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

545 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’° Wealth Vault β€” Financial Wellness App

Take control of your money. Build healthier financial habits.
Wealth Vault is a modern financial wellness platform that helps users understand spending behavior, set meaningful goals, and make smarter financial decisions using AI-powered insights.

πŸ“Š Badges

GitHub stars GitHub forks Visitors GitHub issues License


🌐 Website Flow

Wealth Vault guides users through a simple three-step flow:

  1. Landing Page
    Introduces Wealth Vault, highlights features, and encourages users to sign up.

    Home Page
  2. Authentication (Sign Up / Login)
    Secure user registration and login powered by Supabase Auth.

    Dashboard
  3. Dashboard
    Personalized financial insights, expense tracking, goal management, and visual analytics.

    Dashboard

✨ What Makes Wealth Vault Different?

Wealth Vault goes beyond simple expense tracking. It focuses on behavior-aware finance, helping users understand why they spend β€” not just what they spend.

πŸ”‘ Key Features

  • 🧠 Smart Spending Analysis
    Categorizes expenses into Safe, Impulsive, and Anxious spending patterns

  • 🎯 Financial Goals Management
    Set, track, and visualize progress toward financial objectives

  • πŸ€– AI Financial Coach
    Personalized insights and actionable recommendations

  • πŸ“· QR Code Expense Entry
    Log expenses instantly using QR codes and UPI

  • πŸ“Š Visual Analytics Dashboard
    Interactive charts for clear spending insights

  • πŸ“ CSV Data Import
    Import historical financial data with ease

  • πŸ‘€ User Profiles
    Personalized financial preferences and income settings

  • 🎨 User-Friendly Interface
    Clean, responsive UI built for everyday use


πŸ›  Tech Stack

Layer Technology
Frontend React 18, TypeScript, Vite
Styling Tailwind CSS
Backend & DB Supabase (PostgreSQL)
Auth Supabase Auth
Charts Chart.js, React-Chartjs-2
Icons Lucide React
QR Scanning @zxing/browser

βœ… Prerequisites

  • Node.js 18+
  • npm
  • Git

OR


⚑ Quick Setup

πŸš€ Automated Setup (Recommended)

Run this single command to set up everything automatically:

npm run sync

This will:

  • Install all dependencies (root, backend, and frontend)
  • Create environment configuration files
  • Set up the database connection

🐳 Docker Setup

If you have Docker installed:

git clone https://github.com/csxark/Wealth-Vault.git
cd Wealth-Vault
docker-compose up

Access at http://localhost:3000 | Full Docker docs β†’


πŸ”§ Manual Setup (Step by Step)

If you prefer manual control or the automated setup fails, follow these steps:

Step 1: Install Dependencies

# Install root dependencies and all sub-projects
npm install

Or install individually:

# Root dependencies
npm install

# Backend dependencies
cd .\backend\
npm install
cd ..

# Frontend dependencies
cd .\frontend\
npm install
cd ..

Step 2: Configure Environment Variables

Automatic method:

npm run setup

This creates .env files in both backend/ and frontend/ directories with template values.

Manual method (Windows):

  1. Backend environment:

    • Copy backend\env.example to backend\.env
    • Edit backend\.env and update:
      DATABASE_URL=your_supabase_database_url
      DIRECT_URL=your_supabase_direct_url
      JWT_SECRET=your_secret_key_here
      
  2. Frontend environment:

    • Copy frontend\env.example to frontend\.env
    • Edit frontend\.env and update:
      VITE_SUPABASE_URL=your_supabase_project_url
      VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
      VITE_API_URL=http://localhost:5000/api
      

πŸ“ Note: Get your Supabase credentials from your Supabase Dashboard β†’ Project Settings β†’ API

Step 3: Set Up Database (if using Supabase)

The application uses Supabase (PostgreSQL) for data storage. Make sure:

  • You have created a Supabase project
  • Your database URL and credentials are configured in backend\.env
  • Row Level Security (RLS) policies are set up (see project documentation)

Step 4: Start the Application

Start both frontend and backend together:

npm run dev

Or start individually:

#install this package first
npm install concurrently --save-dev
# Backend only (runs on port 5000)
npm run dev:backend

# Frontend only (runs on port 3000)
npm run dev:frontend

For separate terminals:

# Terminal 1 - Backend
cd backend
npm run dev

# Terminal 2 - Frontend
cd frontend
npm run dev

5️⃣ Access the Application


πŸ”’ Security Features

  • Rate Limiting

    • General API: 100 requests / 15 min
    • Authentication routes: 5 requests / 15 min
    • AI/Gemini routes: 20 requests / 15 min
  • Password Security

    • Strong password enforcement
    • Real-time password strength meter
    • Requirements: β‰₯9 characters, uppercase, lowercase, number, special character

πŸ“š API Documentation

Interactive API documentation is available via Swagger UI at /api-docs when the backend is running.

Includes:

  • All available endpoints
  • Request/response schemas
  • Authentication requirements
  • Try-it-out functionality

API Synchronization

The frontend and backend are fully synchronized with matching data models:

  • User Management: Authentication handled via Supabase Auth
  • Expense Tracking: Real-time expense management with categories
  • Goal Management: Financial goals with progress tracking
  • Category Management: Hierarchical categories with budgets

Database Schema

The app uses Supabase (PostgreSQL) with the following main tables:

  • profiles: User profile information
  • transactions: Financial transactions with spending categories
  • goals: Financial goals and progress tracking

All tables have Row Level Security (RLS) enabled to ensure users can only access their own data.


πŸ“Š Dashboard & Key Components

Dashboard

  • Spending overview with charts
  • Category breakdown: Safe, Impulsive, Anxious
  • Budget tracking and safe spend zone

Goals Management

  • Create and track financial goals
  • Visual progress indicators
  • Goal completion tracking

Profile Management

  • Personal info & financial preferences
  • Income and goal settings

Expense Tracking

  • QR code scanning for quick entry
  • Manual expense logging
  • Category classification

Environment Variables

Variable Description Required
VITE_SUPABASE_URL Your Supabase project URL Yes
VITE_SUPABASE_ANON_KEY Your Supabase anon/public key Yes
VITE_DEBUG Enable debug mode No

Development

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run preview - Preview production build
  • npm run lint - Run ESLint

🌱 Project Structure

frontend/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/     # React components
β”‚   β”œβ”€β”€ hooks/          # Custom React hooks
β”‚   β”œβ”€β”€ lib/            # External library configurations
β”‚   β”œβ”€β”€ types/          # TypeScript type definitions
β”‚   └── utils/          # Utility functions
β”œβ”€β”€ public/             # Static assets
└── package.json        # Dependencies and scripts

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your GitHub repository to Vercel
  2. Set environment variables in the Vercel dashboard
  3. Deploy automatically on push to main branch

Troubleshooting

Common Issues

  1. Environment Variables Not Loading

    • Ensure .env file is in the frontend directory
    • Restart the development server after adding variables
  2. Database Connection Errors

    • Verify the Supabase URL and key are correct
    • Check if the database schema is properly set up
    • Ensure RLS policies are configured
  3. Authentication Issues

    • Verify Supabase Auth is enabled
    • Check Site URL configuration in Supabase
    • Clear browser cache and local storage

Debug Mode

Enable debug mode by setting VITE_DEBUG=true to see detailed console logs.


🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

πŸ‘₯ Contributors


πŸ“„ License

MIT License β€” see LICENSE for details.


πŸ›  Support

About

No description, website, or topics provided.

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 28