A full-stack expense tracking application with user authentication, SQLite database, interactive analytics, and automated report generation.
- Secure Authentication: User signup/login with SHA-256 password hashing
- Interactive Dashboard: Real-time expense analytics and visualizations
- Database Integration: SQLite backend for data persistence
- Data Visualization: Charts and graphs using Matplotlib
- Export Functionality: Generate Excel and PDF reports
- Category Tracking: Organize expenses by categories (Food, Transport, Entertainment, etc.)
- Monthly Reports: Automated financial summaries with statistics
- Advanced Filtering: Sort and filter by date, category, and amount
- Expense Management: Edit and delete transactions
- Responsive Design: Works on desktop and mobile
- Backend: Python 3.10+, SQLite
- Frontend: Streamlit
- Data Processing: Pandas, NumPy
- Visualization: Matplotlib
- Export: XlsxWriter, ReportLab
- Security: Hashlib (SHA-256)
# Clone repository
git clone https://github.com/CODER-T101/expense-tracker-pro.git
cd expense-tracker-pro
# Install dependencies
pip install -r requirements.txt
# Run application
streamlit run tracker.py- Sign Up: Create a new account with username and password
- Login: Access your personalized dashboard
- Add Expenses: Record daily transactions with categories and descriptions
- View Dashboard: Monitor spending patterns with interactive charts
- Analyze Data: View category breakdowns and spending trends
- Generate Reports: Create monthly summaries with detailed statistics
- Export Data: Download reports as Excel or PDF files
### Login & Authentication

### Dashboard Overview

### Expense Analytics

### Report Export

View your spending at a glance with interactive charts and key metrics.
Analyze spending patterns by category with visual breakdowns.
Generate comprehensive reports with statistics and top expenses.
Download your financial data as Excel spreadsheets or PDF documents.
- Total spending overview
- Transaction count
- Average transaction amount
- Last 30 days spending
- Pie chart for category distribution
- Line graph for daily spending trends
- Add new expenses with date, category, amount, and description
- View all expenses in a sortable table
- Filter by category and time period
- Delete individual transactions
- Category-wise spending breakdown
- Percentage distribution
- Bar charts for comparison
- Monthly spending trends
- Top expense identification
- Monthly summary generation
- Category breakdowns with percentages
- Top 5 expenses listing
- Excel export with multiple sheets
- Professional PDF reports with formatting
- PostgreSQL Migration - Persistent cloud storage for better data retention
- Budget Limits - Set monthly budgets with alerts
- Recurring Expenses - Auto-add regular bills
- Multi-Currency Support - Handle international transactions
- Dark Mode - Theme customization
- Email Notifications - Monthly report delivery
- Data Visualization Upgrade - Interactive Plotly charts
- CSV Import - Bulk data upload
- Mobile App - Native mobile version
- API Integration - Connect with banking APIs
- Expense Predictions - ML-based spending forecasts
- Shared Expenses - Family/group expense tracking
expense-tracker-pro/
β
βββ tracker.py # Main application file
βββ requirements.txt # Python dependencies
βββ README.md # Project documentation
βββ LICENSE # MIT License
βββ .gitignore # Git ignore rules
βββ expense_tracker.db # SQLite database (auto-generated)
βββ screenshots/ # App screenshots (optional)
The application uses default settings that work out of the box. For custom configuration:
- Database: Modify
Database.__init__()to change DB name - Categories: Update
categorieslist inmain()function - Port: Streamlit uses port 8501 by default
Create a test account and try these scenarios:
- Add 10-15 expenses across different categories
- Generate monthly reports
- Export data to Excel and PDF
- Test filtering and sorting options
- Verify data persistence after logout
MIT License
Copyright (c) 2025 CODER-T101
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
CODER-T101
- GitHub: @CODER-T101
- Project Repository: expense-tracker-pro
- Live Demo: Expense Tracker Pro
- Built with using Python and Streamlit
- Inspired by the need for simple, effective personal finance management
- Thanks to the open-source community for amazing tools and libraries
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
- Fork the Project
- 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
For questions, feedback, or collaboration opportunities, feel free to reach out through GitHub.
If you found this project helpful, please give it a star!
Made with Python π | Deployed on Streamlit βοΈ | Open Source