This project is a Personal Finance Manager application built using Python and PyQt6. The application provides users with an intuitive interface to manage their income, expenses, categories, reports, and settings. The project includes user authentication, data validation, and interactive data visualization.
- User Authentication: Sign up, log in, and password recovery.
- Income and Expense Tracking: Record financial transactions.
- Search and Filtering: Advanced search functionality.
- Data Visualization: Generate financial reports with graphical representation.
- Settings: Customize user preferences.
- Database Management: SQLite integration for data storage.
- Backup System: Automatically creates backups of user information as GSON files.
- Automated Testing: Includes unit tests using pytest.
- Programming Language: Python
- GUI Framework: PyQt6
- Database: SQLite
- Data Processing: Pandas
- Visualization: Matplotlib
- Email Handling: SMTP (for password recovery)
- Telegram API: For contact support
- Testing: Pytest
📂 PersonalFinanceManager
├── 📂 Backups # Backup files stored as JSON
│
├── 📂 Controlers # Business logic controllers
│ ├── transaction_controllet.py
│ ├── user_controller.py
│
├── 📂 Database # Database handling
│ ├── database.db
│ ├── database.py
│
├── 📂 Models # Data models
│ ├── transacation.py
│ ├── user.py
│
├── 📂 pictures # UI images
│
├── 📂 tests # Unit tests
│ ├── validation_test.py
│
├── 📂 Utils # Utility functions
│ ├── .env
│ ├── contact_us.py
│ ├── email_sender.py
│ ├── save.py
│ ├── show.py
│ ├── validation.py
│
├── 📂 Views # UI components
│ ├── category.py
│ ├── contactus.py
│ ├── first_page.py
│ ├── forget_password.py
│ ├── login_ui.py
│ ├── record_cost.py
│ ├── record_income.py
│ ├── reporting.py
│ ├── search.py
│ ├── setting.py
│ ├── sign_up.py
│ ├── start_window.py
│
├── README.md # Project documentation
├── main.py
- Python 3.8+
- Pip package manager
-
Clone the repository
git clone https://github.com/farzaddm/AP_Project-Personal-Accountant-.git cd AP_Project-Personal-Accountant -
Install dependencies
-
Run the application
python main.py
- Sign Up/Login to access the dashboard.
- Add Income/Expenses to track financial records.
- Search Transactions with filters for better insights.
- View Reports in graphical form using Matplotlib.
- Adjust Settings like themes and user details.
- Export Data to JSON for backup.
Contributions are welcome! Please fork the repository and submit a pull request.