Release Description:
The first stable release of the Expense Tracker. This command-line tool helps users manage their expenses, set monthly budgets, and view detailed expense summaries. Version 1.0.0 includes the following features:
Features
- Add Expenses: Users can add expenses with a description, amount, and optional category.
- List All Expenses: View all recorded expenses, with filters available by category.
- Update/Delete Expenses: Modify or remove existing expenses by ID.
- Monthly Summary: View total expenses for a specific month or the current month.
- Budget Management: Set a monthly budget and receive warnings when the total expenses exceed the defined budget.
- Data Export: Export all expenses to a CSV file for further analysis or backup.
- CLI Commands: User-friendly command-line interface powered by argparse, allowing for intuitive expense management directly from the terminal.
What's New
- Initial stable version with full CRUD (Create, Read, Update, Delete) functionality for managing expenses.
- Monthly budgeting feature with notifications if the user exceeds the defined budget.
- Expense data stored in JSON format and easily exportable to CSV files.
Lessons and Skills Learned
- Working with Python's argparse for building command-line tools.
- Handling JSON file storage for persisting user data.
- Using the datetime module for date manipulation and filtering by month.
- Implementing user input validation and error handling.
- Modularizing Python code into reusable functions and ensuring maintainability.
- Exporting data to CSV for simple data analysis or record-keeping.
Known Issues
- No support for editing budget settings once set (planned for future versions).
- UI feedback could be improved with more interactive messages or colored outputs.
Next Steps for Future Versions
- Add recurring expenses for common monthly payments (e.g., rent, subscriptions).
- Improve user feedback with color-coded messages for warnings and success states.
- Implement more detailed financial reporting (e.g., expenses per category breakdown).
- Support for custom date ranges (not limited to months).