GitHunt
DE

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

License: MIT
Language: C#
Platform: Windows
Framework: .NET
Database: SQL Server

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!

BudgetMe Dashboard Preview

๐Ÿ“‹ Table of Contents

โœจ 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

  1. Clone the repository

    git clone https://github.com/deaneeth/budgetme-finance-manager.git
  2. Navigate to the project directory

    cd budgetme-finance-manager
  3. Open the Solution

    • Launch Visual Studio
    • Open BudgetMe.sln from the repository folder
  4. Restore NuGet Packages

    • Right-click on the Solution in Solution Explorer
    • Select "Restore NuGet Packages"
    • Wait for the process to complete
  5. 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)
  6. Build the Solution

    • Select Build โ†’ Build Solution (or press Ctrl+Shift+B)
    • Ensure there are no build errors
  7. 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

  1. 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
  2. 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

  1. Navigate to "Daily Tracker" from the sidebar
  2. Enter expense details (amount, category, description)
  3. Click "Add" to record your expense
  4. View your daily spending summary and remaining budget

Managing Debts

  1. Navigate to "Debt Manager" from the sidebar
  2. Add new debts with creditor details and repayment plans
  3. Record payments toward existing debts
  4. Monitor your remaining balances and upcoming payments

Tracking Investments

  1. Navigate to "Investment" from the sidebar
  2. Add your investment holdings with details
  3. Update values as your investments change
  4. View performance metrics and summary data

Recording Transactions

  1. Select the appropriate transaction type from the menu
  2. Fill in the required details for the transaction
  3. 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

BudgetMe Dashboard Preview

Transaction Management

Add Transaction Screen

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:

  1. Create a New Database

    • The application is configured to look for BudgetMeDatabases.mdf in the application directory
    • Visual Studio will automatically create this file when you run the application for the first time
  2. Initialize Database Schema

    • Execute the SQL queries in SQLQuery1.sql to set up the required tables
    • Alternatively, the application can auto-create tables on first run

.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:

  1. Fork the Repository

    • Create a fork of this project to your GitHub account
  2. Create a Branch

    git checkout -b feature/your-feature-name
  3. Make Changes

    • Implement your feature or fix
    • Ensure code follows existing style patterns
  4. Test Your Changes

    • Verify your changes work as expected
    • Check for any potential issues
  5. 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.

License: MIT

โญ Star this repository if you find it useful! โญ

Last Updated: August 25, 2023