deaneeth/budgetme-finance-manager
A comprehensive personal finance management desktop application built with C# and WinForms. Track expenses, manage debts, monitor investments, and visualize your financial health with customizable dashboards and progress bars. Take control of your financial future with this all-in-one budgeting solution.
๐ฐ BudgetMe - Your Personal Finance Manager
Take control of your financial future with BudgetMe - a comprehensive desktop application that helps you track expenses, manage debts, monitor investments, and visualize your financial health all in one place!
๐ Table of Contents
- Features
- System Requirements
- Installation Guide
- Usage Instructions
- Project Structure
- Database Schema
- Screenshots
- Technologies Used
- Contributing
- License
โจ Features
๐ User Authentication
- Secure Login & Registration: Protect your financial data with a personal account
- Password Recovery: Easily recover access to your account
๐ Interactive Dashboard
- Financial Overview: Get a comprehensive view of your total balance
- Recent Transactions: Quick access to your most recent financial activities
- Visual Progress: Circular progress bars for goal tracking and spending limits
๐ต Daily Expense Tracker
- Quick Entry Forms: Efficiently log your daily expenses
- Categorization: Organize expenses by customizable categories
- Real-time Updates: Watch your spending patterns evolve as you add entries
๐ธ Debt Management
- Debt Tracking: Monitor all your debts in one place
- Repayment Scheduling: Plan and schedule your debt repayments
- Payment Notifications: Get alerts for upcoming payment deadlines
๐ Investment Portfolio
- Investment Tracking: Monitor your investment holdings
- Performance Metrics: Track the performance of your investments over time
- Summary Views: Get a birds-eye view of your entire investment portfolio
๐ Transaction Management
- Multiple Transaction Types: Support for debt, investment, and daily transactions
- Detailed History: Comprehensive transaction history with filtering options
- Search Functionality: Easily find specific transactions
๐ Data Visualization
- Financial Health Indicators: Visual representations of your financial status
- Progress Tracking: Monitor your savings and budgeting goals
- Trend Analysis: Analyze your spending patterns over time
๐ฅ System Requirements
- Operating System: Windows 10 or later
- Processor: 1.6 GHz or faster
- RAM: 2 GB minimum (4 GB recommended)
- Disk Space: 100 MB available
- Framework: .NET Framework 4.7.2 or higher
- Database: Microsoft SQL Server LocalDB (included with Visual Studio)
- Display: 1366ร768 or higher resolution
๐ Installation Guide
Prerequisites
- Microsoft Visual Studio 2017 or later
- SQL Server LocalDB (comes with Visual Studio)
- .NET Framework 4.7.2 Development Tools
Step-by-Step Installation
-
Clone the repository
git clone https://github.com/deaneeth/budgetme-finance-manager.git
-
Navigate to the project directory
cd budgetme-finance-manager -
Open the Solution
- Launch Visual Studio
- Open
BudgetMe.slnfrom the repository folder
-
Restore NuGet Packages
- Right-click on the Solution in Solution Explorer
- Select "Restore NuGet Packages"
- Wait for the process to complete
-
Database Configuration
- The application uses LocalDB with a relative path (
|DataDirectory|\BudgetMeDatabases.mdf) - No manual configuration needed if using the default setup
- All connection strings use Integrated Security (no passwords are stored in the code)
- The application uses LocalDB with a relative path (
-
Build the Solution
- Select Build โ Build Solution (or press Ctrl+Shift+B)
- Ensure there are no build errors
-
Run the Application
- Press F5 or click the "Start" button to launch the application
- The application will open at the Login screen
๐ฎ Usage Instructions
First-Time Setup
-
Create a New Account
- Launch the application
- Click "Sign Up" on the login screen
- Fill in your details and create a password
- Click "Register" to create your account
-
Login to Your Account
- Enter your username and password
- Click "Login" to access your dashboard
Using the Dashboard
- The dashboard provides an overview of your financial status
- Use the sidebar to navigate between different modules
- Circular progress bars visualize your budget utilization
Tracking Daily Expenses
- Navigate to "Daily Tracker" from the sidebar
- Enter expense details (amount, category, description)
- Click "Add" to record your expense
- View your daily spending summary and remaining budget
Managing Debts
- Navigate to "Debt Manager" from the sidebar
- Add new debts with creditor details and repayment plans
- Record payments toward existing debts
- Monitor your remaining balances and upcoming payments
Tracking Investments
- Navigate to "Investment" from the sidebar
- Add your investment holdings with details
- Update values as your investments change
- View performance metrics and summary data
Recording Transactions
- Select the appropriate transaction type from the menu
- Fill in the required details for the transaction
- Save the transaction to update your financial records
๐ Project Structure
The BudgetMe project follows a standard Windows Forms application structure:
BudgetMe/
โโโ BudgetMe.sln # Solution file
โโโ README.md # Project documentation
โโโ SQLQuery1.sql # Database queries
โโโ BudgetMe/ # Main project folder
โ โโโ App.config # Application configuration
โ โโโ BudgetMe.csproj # Project file
โ โโโ Database Files # LocalDB database files (not included in repo)
โ โโโ Program.cs # Application entry point
โ โโโ Form Files # Windows Forms (.cs, .Designer.cs, .resx)
โ โ โโโ Login.cs # Login screen
โ โ โโโ Signup.cs # Registration screen
โ โ โโโ AllDash.cs # Main dashboard
โ โ โโโ DailyTracker.cs # Expense tracking
โ โ โโโ DebtManager.cs # Debt management
โ โ โโโ Investment.cs # Investment tracking
โ โ โโโ Transaction.cs # Transaction management
โ โ โโโ ... # Other form files
โ โโโ Properties/ # Project properties
โ โโโ Resources/ # Application resources
โ โโโ bin/ # Binary output
โ โโโ obj/ # Object files
โโโ packages/ # NuGet packages๐ Database Schema
BudgetMe uses a SQL Server LocalDB with the following main tables:
Users Table
- Stores user authentication information and profile data
- Primary key: UserID
- Fields: Username, Password, Email, etc.
Transactions Table
- Records all financial transactions
- Primary key: TransactionID
- Fields: UserID (FK), Amount, Type, Category, Date, Description
Debts Table
- Tracks debt information
- Primary key: DebtID
- Fields: UserID (FK), Creditor, Amount, Interest, DueDate, Status
Investments Table
- Manages investment holdings
- Primary key: InvestmentID
- Fields: UserID (FK), Name, Amount, PurchaseDate, CurrentValue
Daily Expenses Table
- Records day-to-day spending
- Primary key: ExpenseID
- Fields: UserID (FK), Date, Category, Amount, Description
๐ธ Screenshots
Main Dashboard
Transaction Management
Other Screens
More screenshots will be added as the application is developed further.
๐ Technologies Used
- C#: Primary programming language
- .NET Framework 4.7.2: Application framework
- Windows Forms: UI framework
- SQL Server LocalDB: Database
- ADO.NET: Data access
- CircularProgressBar: Visual component for progress tracking
- BouncyCastle.Cryptography: Security components
- Various .NET Libraries: For additional functionality
๏ฟฝ Setup Instructions for Contributors
Database Setup
Since the database files (.mdf and .ldf) are not included in the repository for security and size reasons, you'll need to initialize your own database:
-
Create a New Database
- The application is configured to look for
BudgetMeDatabases.mdfin the application directory - Visual Studio will automatically create this file when you run the application for the first time
- The application is configured to look for
-
Initialize Database Schema
- Execute the SQL queries in
SQLQuery1.sqlto set up the required tables - Alternatively, the application can auto-create tables on first run
- Execute the SQL queries in
.gitignore Configuration
This repository uses a .gitignore file to prevent committing sensitive or unnecessary files:
- Database files (
.mdf,.ldf) - Compiled binaries (
bin/,obj/) - User-specific settings (
.suo,.user) - NuGet packages (
packages/)
๏ฟฝ๐จโ๐ป Contributing
Contributions to BudgetMe are welcome! Here's how you can contribute:
-
Fork the Repository
- Create a fork of this project to your GitHub account
-
Create a Branch
git checkout -b feature/your-feature-name
-
Make Changes
- Implement your feature or fix
- Ensure code follows existing style patterns
-
Test Your Changes
- Verify your changes work as expected
- Check for any potential issues
-
Submit a Pull Request
- Create a PR with a clear description of your changes
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
โญ Star this repository if you find it useful! โญ
Last Updated: August 25, 2023

