A comprehensive Python application for personal financial management and planning. This application helps users track budgets, expenses, investments, and debts while providing insights into their financial health.
-
Budget Management
- Create and track monthly budgets by category
- Monitor spending against budgets
- Receive alerts when spending exceeds thresholds
-
Expense Tracking
- Record daily expenses
- Automatic categorization of recurring expenses
- Detailed expense analysis and reporting
-
Investment Portfolio
- Track stocks and cryptocurrency investments
- Real-time portfolio valuation
- Performance analysis and reporting
- Integration with Alpha Vantage API for market data
-
Debt Management
- Track multiple debts and loans
- Calculate optimal payment strategies (snowball/avalanche methods)
- Monitor debt reduction progress
-
Financial Health
- Calculate overall financial health score
- Receive personalized insights and recommendations
- Track progress over time
-
Reporting
- Generate detailed financial reports
- Export data to PDF format
- Visualize financial trends with charts
- Clone the repository:
git clone https://github.com/yourusername/FinancePlanner.git
cd FinancePlanner- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Set up environment variables:
cp .env.example .envEdit .env file and add your configuration:
- Set your preferred database URL (default: SQLite)
- Generate and set a secure SECRET_KEY
- Add your Alpha Vantage API key for investment tracking
- Start the application:
python main.py- First-time setup:
- Register a new account
- Set up your initial budget categories
- Add any existing investments or debts
- Regular usage:
- Track daily expenses
- Monitor budget compliance
- Review investment performance
- Generate financial reports
- Check financial health score
1. Select "Budget Management" from the main menu
2. Choose "Create Budget Category"
3. Enter category name (e.g., "Groceries")
4. Enter monthly budget amount
1. Select "Transactions" from the main menu
2. Choose "Add Expense"
3. Enter amount and category
4. Add optional description
1. Select "Investments" from the main menu
2. Choose "Add Investment"
3. Select investment type (stock/crypto)
4. Enter symbol and purchase details
1. Select "Reports" from the main menu
2. Choose "Generate Monthly Report"
3. Reports are saved in the 'reports' directory
FinancePlanner/
├── src/
│ ├── models/
│ │ ├── base.py
│ │ └── models.py
│ ├── services/
│ │ ├── auth_service.py
│ │ ├── budget_service.py
│ │ ├── transaction_service.py
│ │ ├── investment_service.py
│ │ ├── debt_service.py
│ │ └── report_service.py
│ ├── app.py
│ └── cli.py
├── main.py
├── requirements.txt
└── .env.example
pytestThis project follows PEP 8 coding standards. To check code style:
flake8 src/- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE.md file for details.
- Alpha Vantage API for market data
- SQLAlchemy for database management
- Click for CLI interface
- Matplotlib and Seaborn for data visualization