A modern personal finance tracker that helps users manage transactions, track budgets, and visualize spending patterns through interactive charts.
- Real-time balance calculations and transaction tracking
- Categorize income and expenses
- View transactions by day, month, or custom date ranges
- Edit or delete transaction records
- CSV export for financial reporting
- Interactive expense analysis charts
- Monthly trends visualization
- Spending by category breakdown
- Custom date range filtering
- Set and track budget goals
- Progress tracking and notifications
- Flexible budget categories
- Monthly reset and rollover options
- React 18 with Vite
- TailwindCSS for styling
- React Query for data fetching
- React Router for navigation
- JWT for authentication
- Node.js & Express
- MongoDB for data storage
- RESTful API architecture
-
Clone the repository
git clone https://github.com/jason-hn/cashflow.git cd cashflow -
Install dependencies
# Install frontend dependencies cd client && npm install # Install backend dependencies cd ../server && npm install
-
Set up environment variables:
# In /server/.env MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret PORT=3000 # In /client/.env VITE_API_URL=http://localhost:3000
-
Start the development servers
# Start backend (from /server) npm run dev # Start frontend (from /client) npm run dev
-
Visit
http://localhost:5173in your browser
cashflow/
├── client/ # Frontend React application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── api/ # API integration
│ │ ├── store/ # State management
│ │ └── utils/ # Helper functions
│ └── public/ # Static assets
└── server/ # Backend Node.js application
├── src/
│ ├── controllers/ # Request handlers
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ └── middleware/ # Custom middleware
└── config/ # Configuration files
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.