Fire Journey is a personal finance application designed to help users track their income, expenses, investments, and loans. It includes features such as a FIRE (Financial Independence, Retire Early) calculator, portfolio management, and net worth tracking. It was made by Maksimilian Stajer (682271) for the Fin-tech course.
- User Login: Secure login for each user.
- Income and Expense Tracking: Record and predict expenses and income.
- Portfolio Management: Track stock investments, add and remove holdings, and view performance.
- Net Worth Calculation: Track your net worth over time.
- Assets and Loans Management: Track assets and manage loan details.
- FIRE Calculator: Calculate the number of years to reach financial independence based on various inputs.
-
Clone the repository:
git clone https://github.com/StayerM/FinTech-682271 cd FinTech-682271
-
Create and activate a virtual environment:
python3 -m venv venv source venv/bin/activate
-
Install the required packages:
pip install -r requirements.txt
-
Run the application:
python PFM_app.py
- Python 3.6+
- PyQt5
- scikit-learn
- matplotlib
- seaborn
- pandas
- yfinance
- SQLite3 (built-in with Python)
- On startup, the application will prompt the user to log in.
- After logging in, users can navigate through the tabs to manage their finances.
- The Income and Expenses tab allows users to add and view records, predict future expenses, and visualize weekly income and expenses.
- The Portfolio tab lets users manage their stock holdings, view all records, and track portfolio performance.
- The Net Worth tab shows the user's current net worth and provides a graphical history.
- The Assets and Loans tab allows users to manage their assets and loans.
- The FIRE Calculator tab helps users calculate their retirement timeline based on their financial data.
To help with testing and development, a Fake Data Maker script is included. This script generates fake data for the records
, portfolio
, and net_worth_history
tables without adding any assets, loans, or recurring records.
- Ensure the SQLite database (
finance.db
) is set up. - Run the Fake Data Maker script:
python fake_data_maker.py
This script will:
- Ensure the user "Maks" exists and retrieve their user ID.
- Generate and insert 100 fake records into the
records
table. - Generate and insert 10 fake records into the
portfolio
table. - Generate and insert net worth history entries from January 2023 to June 2024.
This project is licensed under the MIT License. See the LICENSE file for details.
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Commit your changes (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Create a new Pull Request.
Special thanks to the open-source community for providing the tools and libraries that made this project possible.
For questions or feedback, please contact max.stajer@gmail.com.