The Finance Management System is a simple, command-line-based application written in Python 3. It allows users to manage their finances by recording income and expenses, categorizing transactions, setting budgets, tracking recurring expenses, and more. This project is ideal for those who want to keep a track of their personal finances.
- Add Transactions: Record income and expenses with descriptions and categories.
- Category Tracking: View transactions by category to better understand your spending habits.
- Budgeting and Alerts: Set budgets for specific categories and receive alerts if you exceed them.
- Recurring Transactions: Automatically add recurring transactions (like monthly rent or subscriptions).
- Search Functionality: Search for transactions by keywords in their descriptions.
- Balance Calculation: Calculate the current balance based on recorded transactions.
- Python 3.x installed on your machine.
- A terminal or command prompt to run the application.
-
Clone the Repository:
Open your terminal or command prompt and run the following command to clone the repository:
git clone https://github.com/your-username/your-repository-name.git
Replace
your-username
andyour-repository-name
with your GitHub username and the repository name. -
Navigate to the Project Directory:
cd your-repository-name
-
Run the Application:
Run the following command to start the Finance Management System:
python fintracker.py
Once the program is running, you will see the main menu with options to add earnings, expenses, view transactions, and more. Simply enter the number corresponding to the option you want to select and follow the prompts.
Here’s a quick overview of what each option does:
- Add Earnings: Record income with an amount, description, and category.
- Add Expense: Record expenses with an amount, description, and category.
- View Transactions: View all recorded transactions.
- View Transactions by Category: Filter transactions by a specific category.
- Set Budget: Set a budget for a specific category.
- Check Budget: Check if spending in any category exceeds the budget.
- Add Recurring Transaction: Set up transactions that repeat at regular intervals.
- Search Transactions: Search for transactions based on a keyword in their descriptions.
- Calculate Balance: Calculate and display the current balance.
- Exit: Exit the application.
Here’s an example of how you might use the Finance Management System:
-
Add an Earning:
- Choose option
1
. - Enter the amount, description (e.g., "Salary"), and category (e.g., "Income").
- Choose option
-
Add an Expense:
- Choose option
2
. - Enter the amount, description (e.g., "Groceries"), and category (e.g., "Food").
- Choose option
-
Set a Budget:
- Choose option
5
. - Set a budget for the "Food" category, e.g., $500.
- Choose option
-
Check Budget:
- Choose option
6
to see if you are within your budget for each category.
- Choose option
-
Add a Recurring Transaction:
- Choose option
7
. - Set up a recurring expense for "Rent" that repeats every 30 days.
- Choose option
-
View Your Balance:
- Choose option
9
to see your current balance.
- Choose option
The project is implemented in Python using a single class Fintracker
that handles all the financial operations. Below is a brief overview of the key methods:
add_transaction(amount, description, category)
: Adds a new transaction to the system.view_transactions()
: Displays all transactions.view_transactions_by_category(category)
: Filters and displays transactions by category.set_budget(category, amount)
: Sets a budget for a specified category.check_budget()
: Checks if the spending in any category exceeds the budget.add_recurring_transaction(amount, description, category, interval_days)
: Adds a recurring transaction.process_recurring_transactions()
: Processes due recurring transactions and adds them to the main transaction list.search_transactions(keyword)
: Searches transactions based on a keyword.calculate_balance()
: Calculates the current balance by summing up all transactions.
If you would like to contribute to this project, feel free to fork the repository and submit a pull request with your changes.