A modern, intuitive personal finance tracking application to help you manage your money better.
Note: First load may take ~30 seconds (free tier cold start). Once loaded, it's fast!
- Dashboard Overview - See your complete financial picture at a glance
- Transaction Management - Track income and expenses with search & filtering
- Money Tracking - Keep tabs on money you owe and money owed to you
- Spending Limits - Set monthly budgets and track progress
- Multi-Currency Support - USD, EUR, GBP, INR
- Financial Tools - Interest calculator for loans and investments
- Smart Notifications - Get alerts for due payments and spending limits
- Responsive Design - Works beautifully on desktop and mobile
Frontend:
- React 18 + TypeScript
- Vite (Build tool)
- Tailwind CSS
- shadcn/ui components
- Zustand (State management)
- Recharts (Data visualization)
Backend:
- Express.js
- Node.js
- localStorage (Client-side persistence)
- Node.js 18+ installed
- npm or yarn
# Clone the repository
git clone https://github.com/rupesh1787/Finance_Buddy.git
# Navigate to project directory
cd Finance_Buddy
# Install dependencies
npm install
# Run development server
npm run devVisit http://localhost:5001 to see the app running locally.
npm run dev # Start development server
npm run build # Build for production
npm start # Run production server
npm run check # Type checkingThis app is deployed on Render.
To deploy your own instance:
- Fork this repository
- Sign up on Render.com
- Create a new Web Service
- Connect your forked repository
- Use these settings:
- Build Command:
npm install && npm run build - Start Command:
npm start
- Build Command:
- Deploy!
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
| Variable | Description | Default |
|---|---|---|
DATABASE_URL |
Required for Render. PostgreSQL connection string for persistent sessions | - |
SESSION_SECRET |
Required. Random 32+ char secret for session signing | finance-buddy-secret-key-change-in-prod |
NODE_ENV |
Set to production on Render |
development |
EXCHANGE_RATE_PROVIDER_URL |
Base URL for exchange rate API | https://api.exchangerate.host |
CACHE_TTL |
Exchange rate cache TTL in ms | 3600000 (1 hour) |
GOOGLE_AI_API_KEY |
(Optional) Gemini API key for AI insights | - |
- Create a PostgreSQL database on Render (free tier available)
- Copy the Internal Database URL from Render's database dashboard
- Add these environment variables to your Web Service:
DATABASE_URL= (paste the Internal Database URL)SESSION_SECRET= (generate withopenssl rand -hex 32)NODE_ENV=production
- Sessions will persist across deploys and server restarts
- Log in and change currency (header dropdown)
- Refresh page β currency should persist
- Open new tab β same currency preference
- Log out and back in β currency restored
- Add expense β "Food / Eating Out" category available
- Add income β "Side Gig" and "Passive Income" categories available
- Categories display correct colors
- Type in header search bar β dropdown appears after 300ms
- Results show description, date, amount
- Click result β navigate to Transactions page
- Clear search β results disappear
- Open sidebar converter β enter amount
- Swap currencies works
- Copy result β shows toast "Copied $X.XX"
- Disconnect network β shows "Using cached rate" warning
- Apply to form β amount appears in Quick Add
- Basic math: 10 + 5 = 15, handles decimals correctly
- Tip calculator: Add 15% tip to $100 β $115
- Split: $100 Γ· 4 = $25 per person
- Apply to form β fills Quick Add amount field
- Keyboard shortcuts work (Enter = equals, C = clear)
- Click "Tools" in sidebar β opens Financial Tools page
- Click "Money Transfer" β opens Money Flow page
- Both pages load without errors
- Tab toggles (To Pay / To Receive) work with glow effect
- To Pay / To Receive tabs: taller, with glow on active
- Colors: green for income, red for expenses
- Mobile responsive: sidebar collapses, search hidden
This project is licensed under the MIT License.
Rupesh
- GitHub: @rupesh1787
- shadcn/ui for beautiful components
- Tailwind CSS for styling
- Recharts for data visualization
If you have any questions or issues, please open an issue.
Built with β€οΈ for better financial management