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.
Wealth Vault guides users through a simple three-step flow:
-
Landing Page
Introduces Wealth Vault, highlights features, and encourages users to sign up. -
Authentication (Sign Up / Login)
Secure user registration and login powered by Supabase Auth. -
Dashboard
Personalized financial insights, expense tracking, goal management, and visual analytics.
Wealth Vault goes beyond simple expense tracking. It focuses on behavior-aware finance, helping users understand why they spend β not just what they spend.
-
π§ 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
| 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 |
- Node.js 18+
- npm
- Git
OR
- Docker & Docker Compose (see Docker setup)
Run this single command to set up everything automatically:
npm run syncThis will:
- Install all dependencies (root, backend, and frontend)
- Create environment configuration files
- Set up the database connection
If you have Docker installed:
git clone https://github.com/csxark/Wealth-Vault.git
cd Wealth-Vault
docker-compose upAccess at http://localhost:3000 | Full Docker docs β
If you prefer manual control or the automated setup fails, follow these steps:
# Install root dependencies and all sub-projects
npm installOr install individually:
# Root dependencies
npm install
# Backend dependencies
cd .\backend\
npm install
cd ..
# Frontend dependencies
cd .\frontend\
npm install
cd ..Automatic method:
npm run setupThis creates .env files in both backend/ and frontend/ directories with template values.
Manual method (Windows):
-
Backend environment:
- Copy
backend\env.exampletobackend\.env - Edit
backend\.envand update:DATABASE_URL=your_supabase_database_url DIRECT_URL=your_supabase_direct_url JWT_SECRET=your_secret_key_here
- Copy
-
Frontend environment:
- Copy
frontend\env.exampletofrontend\.env - Edit
frontend\.envand update:VITE_SUPABASE_URL=your_supabase_project_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key VITE_API_URL=http://localhost:5000/api
- Copy
π Note: Get your Supabase credentials from your Supabase Dashboard β Project Settings β API
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)
Start both frontend and backend together:
npm run devOr 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:frontendFor separate terminals:
# Terminal 1 - Backend
cd backend
npm run dev
# Terminal 2 - Frontend
cd frontend
npm run dev- Frontend: http://localhost:3000
- Backend API: http://localhost:5000/api
- API Health Check: http://localhost:5000/api/health
- API Documentation: http://localhost:5000/api-docs
-
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
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
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
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.
- Spending overview with charts
- Category breakdown: Safe, Impulsive, Anxious
- Budget tracking and safe spend zone
- Create and track financial goals
- Visual progress indicators
- Goal completion tracking
- Personal info & financial preferences
- Income and goal settings
- QR code scanning for quick entry
- Manual expense logging
- Category classification
| 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 |
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
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
- Connect your GitHub repository to Vercel
- Set environment variables in the Vercel dashboard
- Deploy automatically on push to
mainbranch
-
Environment Variables Not Loading
- Ensure
.envfile is in thefrontenddirectory - Restart the development server after adding variables
- Ensure
-
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
-
Authentication Issues
- Verify Supabase Auth is enabled
- Check Site URL configuration in Supabase
- Clear browser cache and local storage
Enable debug mode by setting VITE_DEBUG=true to see detailed console logs.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
MIT License β see LICENSE for details.
- Open an issue in the GitHub repository
- Review Supabase documentation for database issues


