A comprehensive personal finance management application built with modern web technologies. Track your income, expenses, savings goals, and financial progress with an intuitive and responsive interface.
- Multi-Wallet Support: Manage cash, credit cards, debit cards, bank accounts, and more
- Transaction Tracking: Add, view, edit, and delete income/expense transactions
- Real-time Balance Updates: Automatic balance calculations across all wallets
- Fund Transfers: Transfer money between wallets with transaction history
- Savings Goals: Set and track financial targets with progress monitoring
- Linked Wallets: Connect savings goals to specific wallets
- Progress Visualization: Track your journey towards financial goals
- Interactive Dashboard: Overview of your financial health
- Income vs Expenses: Visual breakdown of your spending patterns
- Quick Statistics: Average transactions, largest expenses, savings rate
- Recent Activity: Latest transactions with detailed information
- Category Analysis: Track spending by category
- Secure Authentication: User registration and login system
- Responsive Design: Works seamlessly on desktop and mobile devices
- Dark/Light Mode: Toggle between themes for comfortable viewing
- Data Persistence: Secure local storage with session management
- React 18.3.1 - Modern React with hooks and context
- TypeScript 5.8.3 - Type-safe development
- Vite 5.4.19 - Fast build tool and development server
- Tailwind CSS 3.4.17 - Utility-first CSS framework
- shadcn/ui - Beautiful and accessible UI components
- Radix UI - Unstyled, accessible UI primitives
- Lucide React - Beautiful icons
- React Router DOM 6.30.1 - Client-side routing
- React Hook Form 7.61.1 - Performant forms with validation
- Recharts 2.15.4 - Composable charting library
- FastAPI - Modern Python web framework
- PostgreSQL - Robust relational database
- SQLAlchemy - Python SQL toolkit and ORM
- Pydantic - Data validation using Python type annotations
- ESLint 9.32.0 - Code linting
- TypeScript ESLint - TypeScript-specific linting rules
- PostCSS - CSS post-processor
- Autoprefixer - CSS vendor prefixing
- Node.js 18+ and npm
- Python 3.7+
- PostgreSQL 12+
-
Clone the repository:
git clone <repository-url> cd purple-wealth-hub-main
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open your browser: Navigate to
http://localhost:5173
-
Navigate to backend directory:
cd backend -
Create virtual environment (recommended):
python -m venv venv # On Windows: venv\Scripts\activate # On macOS/Linux: source venv/bin/activate
-
Install Python dependencies:
pip install -r requirements.txt
-
Set up PostgreSQL database:
# Create database createdb purple_wealth_hub -
Initialize database:
python init_db.py
-
Start the backend server:
python run_server.py
The API will be available at
http://localhost:8000
purple-wealth-hub-main/
├── src/
│ ├── api/ # API integration modules
│ │ ├── authApi.ts # Authentication endpoints
│ │ ├── userApi.ts # User management
│ │ ├── walletApi.ts # Wallet operations
│ │ ├── transactionApi.ts # Transaction handling
│ │ ├── savingsApi.ts # Savings goals
│ │ ├── categoryApi.ts # Category management
│ │ └── transferApi.ts # Fund transfers
│ ├── services/ # Business logic services
│ │ ├── themeService.ts # Theme management
│ │ ├── storageService.ts # Local storage utilities
│ │ ├── validationService.ts # Data validation
│ │ └── transformService.ts # Data transformation
│ ├── context/ # React context providers
│ │ └── AppContext.tsx # Main application context
│ ├── components/ # Reusable UI components
│ │ ├── ui/ # shadcn/ui components
│ │ └── layout/ # Layout components
│ ├── pages/ # Application pages
│ │ ├── Dashboard.tsx # Main dashboard
│ │ ├── Transactions.tsx # Transaction management
│ │ ├── Wallets.tsx # Wallet management
│ │ ├── Savings.tsx # Savings goals
│ │ ├── Reports.tsx # Financial reports
│ │ ├── Settings.tsx # User settings
│ │ └── Auth.tsx # Authentication
│ └── utils/ # Utility functions
├── backend/ # FastAPI backend
│ ├── main.py # FastAPI application
│ ├── models.py # Database models
│ ├── schemas.py # Pydantic schemas
│ ├── crud.py # Database operations
│ ├── database.py # Database configuration
│ └── api.py # API routes
└── public/ # Static assets
npm run dev # Start development server
npm run build # Build for productionpython run_server.py # Start FastAPI server
python init_db.py # Initialize database
python test_backend.py # Run backend testsPOST /api/login/- User loginPOST /api/users/- User registration
GET /api/users/{user_id}- Get user profilePUT /api/users/{user_id}/profile- Update user profile
GET /api/users/{user_id}/wallets/- Get user walletsPOST /api/users/{user_id}/wallets/- Create walletPUT /api/wallets/{wallet_id}- Update walletDELETE /api/wallets/{wallet_id}- Delete wallet
GET /api/users/{user_id}/transactions/- Get user transactionsPOST /api/users/{user_id}/transactions/- Create transactionDELETE /api/transactions/{transaction_id}- Delete transaction
GET /api/users/{user_id}/savings_goals/- Get savings goalsPOST /api/users/{user_id}/savings_goals/- Create savings goalPUT /api/savings_goals/{goal_id}- Update savings goalDELETE /api/savings_goals/{goal_id}- Delete savings goal
POST /api/users/{user_id}/transfer/- Transfer between wallets
GET /api/transaction_categories/- Get transaction categories
- Financial Overview: Total income, expenses, and net balance
- Recent Transactions: Latest 5 transactions with details
- Quick Statistics: Transaction counts, averages, and insights
- Savings Rate: Calculate and display savings percentage
- Add Transactions: Income and expense tracking
- Categorization: Organize transactions by categories
- Date Tracking: Record transaction dates
- Description: Add detailed descriptions
- Balance Validation: Prevent overspending
- Multiple Types: Support for various wallet types
- Color Coding: Visual wallet identification
- Balance Tracking: Real-time balance updates
- CRUD Operations: Full wallet lifecycle management
- Goal Setting: Set financial targets
- Progress Tracking: Monitor goal completion
- Linked Wallets: Connect goals to specific wallets
- Target Dates: Set deadline for goals
- Secure Authentication: JWT-based user authentication
- Data Validation: Input validation on both frontend and backend
- Session Management: Secure session handling
- CORS Protection: Cross-origin resource sharing controls
- Light/Dark Mode: Toggle between themes
- System Preference: Automatic theme detection
- Persistent Settings: Theme preferences saved locally
- Smooth Transitions: Animated theme switching
- Mobile-First: Optimized for mobile devices
- Tablet Support: Seamless tablet experience
- Desktop Enhanced: Full-featured desktop interface
- Touch-Friendly: Optimized touch interactions
# Run linting
npm run lint
# Type checking
npx tsc --noEmit# Run backend tests
cd backend
python test_backend.py- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the existing issues in the repository
- Create a new issue with detailed information
- Include steps to reproduce the problem
- Provide your environment details (OS, Node.js version, etc.)
- shadcn/ui for the beautiful UI components
- Radix UI for accessible primitives
- Lucide for the icon set
- FastAPI team for the excellent Python framework
- React team for the amazing library
Made with 💜 for better personal finance management