Budget Tracker
Overview
Originally a half-yearly CS group project where (almost) no one contributed, this Budget Tracker has transformed into an ambitious project that I now aim to complete with friends (again, this time for real!). The goal is to create a functional, user-friendly budget tracker that helps people manage their income, expenses, and financial goals efficiently.
This project is a part of Hacktoberfest, and we're welcoming contributions! Whether it's bug fixes, new features, or improvements, there's room for everyone to help!
Features
- Add Income & Expenses: Users can easily log their income and expenses, categorize them, and store them in an SQLite database.
- Financial Goals: Set savings goals, track progress, and visualize how close you are to achieving them.
- Visualizations: Bar charts, pie charts, and line graphs provide a clear picture of your financial habits.
- Summary & Analysis: View detailed summaries and analysis of your spending habits and overall budget health.
Getting Started
Prerequisites
- Python 3.x
- Tkinter
- SQLite3
- Matplotlib
Installation
- Clone the repository:
git clone https://github.com/your-github-username/budget-tracker.git
- Install the necessary dependencies:
pip install -r requirements.txt
- Run the application:
python src/Main.py
Contributing
We welcome contributions! Please see our Contributing Guidelines and Code of Conduct for more details.
Thanks To All Our Contributors
To-Do List
Core Functionalities
- [ ] Fix the Visuals: Improve the UI/UX, adjust layout, and ensure the design is clean and user-friendly.
- [X] Fix Visualization Tab: Ensure that charts (bar, line, pie) display properly without overlapping or layout issues.
- [ ] Work on Lendings Tab: Add a feature where users can track money lent to others, with options to set deadlines and reminders.
- [ ] Work on Borrowing Tab: Implement a tab to track loans or borrowed amounts, including deadlines and reminders.
- [X] Make Data Permanent: Enhance the database functionality to ensure persistent data storage, so users can retrieve past transactions after restarting the app.
- [X] Replace Tkinter with CustomTkinter: Enhance the look and feel of the app by integrating
CustomTkinter
for modern, polished widgets.
Enhancements
- [X] User Authentication: Add basic login functionality to allow different users to manage their accounts separately.
- [ ] Currency Conversion: Implement a feature to convert between currencies, pulling exchange rates from an API.
- [ ] Recurring Transactions: Enable users to set recurring transactions (monthly bills, salary, etc.) that auto-log at set intervals.
- [ ] Export Data: Allow users to export their data (income, expenses, goals) to CSV or Excel format for easier analysis.
- [X] Add Notifications: Implement a system to notify users when they exceed budget limits or reach savings goals.
- [ ] Mobile App Version: Plan and develop a mobile version (possibly using Kivy or other frameworks).
License
This project is licensed under the MIT License - see the LICENSE file for details.