The Expense Tracker is a Python-based CLI application that helps users manage their personal expenses efficiently. It allows tracking users, categories, expenses, and monthly summaries. The system automatically updates monthly summaries whenever an expense is added, updated, or deleted, helping users monitor savings and expenditures.
- User Management: Add, update, delete, and list users.
- Category Management: Add, delete, and list expense categories.
- Expense Management: Add, update, delete, and view expenses.
- Monthly Summaries: Automatically calculates total expenses, savings, and salary tracking for each month.
- Menu-Driven : Easy-to-use menu for all operations.
- Error Handling: Prevents invalid input, duplicate entries, and ensures proper validation.
- Language: Python 3.10+
- Database: Supabase (PostgreSQL)
- Architecture: Layered design with Service Layer, DAO Layer, and CLI
- Key Libraries:
datetime
,typing
expense_tracker/ │ ├─ src/ │ ├─ init.py │ ├─ main.py │ ├─ config/ │ │ └─ supabase_client.py │ ├─ dao/ │ │ ├─ users_dao.py │ │ ├─ categories_dao.py │ │ ├─ expense_dao.py │ │ └─ monthly_summary_dao.py │ └─ service/ │ ├─ users_service.py │ ├─ category_service.py │ ├─ expense_service.py │ └─ monthly_summary_service.py
- Clone the repository:
git clone https://github.com/yourusername/expense-tracker.git
cd expense-tracker
Install dependencies:
pip install -r requirements.txt
Set up Supabase credentials in src/config/supabase_client.py.
Usage
Run the CLI application:
python -m src.main
Navigate through menus to manage users, categories, expenses, and monthly summaries.
All changes to expenses automatically reflect in the monthly summaries.
Example Workflow:
Add a new user.
Add categories (Food, Transport, Bills, etc.).
Add expenses for the user under specific categories.
View monthly summaries to see total expenses and savings.
Future Enhancements:
GUI/Web App for a better user experience.
Multi-user and multi-store support.
Real-time dashboards with charts and reports.
Integration with payment gateways.
Author
Your Name – Bandi Chandra Kanth
linked in:https://www.linkedin.com/in/bandi-chandra-kanth-b0b145338
License
This project is licensed under the MIT License.
database_schema source:
src="https://github.com/user-attachments/assets/ae2a9200-096e-42d3-9e9f-9d99199b4989"
document_link:
https://docs.google.com/document/d/1CJwOJ1H5DllR8T1y266VlSpBNI3kp1js60DgJbM1o9g/edit?usp=sharing