A simple, clean web app to track your monthly spending by category. Built with Flask and SQLite.
- Add spending entries with amount, category, date, and notes
- View all entries organized by date
- Organized grocery categories (Costco, Walmart, Target, Trader Joe's, Indian Store)
- Delete individual entries or clear all data
- Prevents future date entries
- Timezone-aware (PDT support)
- Persistent storage with SQLite database
- Live online at https://spending-tracker-yiao.onrender.com
- Frontend: HTML, CSS, JavaScript
- Backend: Flask (Python)
- Database: SQLite
- Hosting: Render (free tier)
- Clone the repository:
git clone https://github.com/hamsaram1406/spending-tracker.git
cd spending-tracker- Install dependencies:
pip install -r requirements.txt- Run the app:
python app.py- Open your browser and go to:
http://localhost:5000
spending-tracker/
├── app.py # Flask backend with SQLite
├── requirements.txt # Python dependencies
├── templates/
│ └── index.html # Frontend HTML/CSS/JavaScript
└── spending.db # SQLite database (auto-created)
The app comes with the following spending categories:
Groceries:
- Costco
- Indian Store
- Walmart
- Trader Joe's
- Target
Other:
- Food
- Transport
- Entertainment
- Utilities
- Shopping
- Health
- Other
- Add Entry: Fill in the form with amount, category, date, and optional notes. Click "Add entry"
- View Entries: All entries appear in "Recent entries" section, sorted by date
- Delete Entry: Click the "Delete" button on any entry to remove it
- Clear All: Click "Clear all data" to delete everything (use with caution!)
The app is deployed on Render's free tier. To redeploy after making changes:
- Make changes locally and test with
python app.py - Push to GitHub:
git add .
git commit -m "Your message"
git push- Go to Render Dashboard
- Click "Manual Deploy" on the spending-tracker service
- Changes go live in 1-2 minutes
- Monthly spending summary
- Spending by category visualization (pie/bar charts)
- Budget alerts
- Search/filter entries
- Dark mode
- Export to CSV
- Uses PDT timezone (can be adjusted in code)
- Prevents adding entries for future dates
- Data persists across sessions in SQLite database
- Free deployment means app may sleep after 15 min of inactivity (wakes up on next visit)
Created as a personal spending tracker project.
MIT License - feel free to use and modify!