Skip to content

Linyue-dev/HomeBudget_WPF

Repository files navigation

HomeBudget – Personal & Family Budget Management

A modern WPF desktop application for personal and family budget management, built using MVP architecture and powered by a standalone Budget Core Library.

This project includes a complete CI/CD pipeline that automatically builds and packages the app into a distributable installer.


Key Features

Core (Budget API Library)

  • SQLite database storage
  • Category management (Income / Expense / Investment / Debt / Savings)
  • Transaction CRUD operations
  • Aggregated reporting: monthly reports, category summaries, time-range filtering
  • Decimal precision for financial calculations
  • Clean separation of concerns via MVP
  • Fully testable business logic layer

WPF UI

  • Built using MVP pattern (View + Presenter + Core API)
  • Modern and clean interface
  • Charts for expense/income visualization
  • Export data to Excel
  • Create or load user databases
  • Smooth user experience and fast performance

Screenshots

Start Screen

Monthly Overview

By Categories

Categories by Month


Project Structure

HomeBudget_WPF/
├── Views/               # XAML views (UI)
├── Presenter/           # Presenter classes (UI logic)
├── Interfaces/          # IView interfaces for MVP
├── Models/              # View models
├── dist/                # Auto-generated packaged builds
└── ...                 

Budget.Core/             # Separate Core API library (DLL)
├── Models/              # Category, Transaction, BudgetItem, etc.
├── Services/            # CategoryService, TransactionService...
├── Utils/               # Helpers & validation
└── HomeBudget.cs        # Main facade class

MVP Architecture Overview

     ┌──────────────┐
     │     View     │  (WPF XAML)
     └──────┬───────┘
            │
            ▼
     ┌──────────────┐
     │   Presenter  │  (UI logic)
     └──────┬───────┘
            │
            ▼
     ┌──────────────┐
     │    Model     │  (Budget Core API)
     └──────────────┘
  • View → Displays UI only
  • Presenter → Handles user interactions and calls the API
  • Model (Core) → Pure business logic and database operations

CI/CD – Automated Build & Packaging

This project includes a GitHub Actions workflow that:

  • Builds the WPF project
  • Produces a distributable .exe / installer
  • Uploads artifacts to GitHub Releases automatically

Workflow features:

  • Windows build agent
  • .NET restore + build
  • Packaging via dotnet publish
  • Artifact upload for each commit/tag

Your repository will automatically generate an installable desktop app on each push to main.


How to Build

Requirements:

  • .NET 6+ / .NET Framework
  • Visual Studio 2022
  • SQLite

Steps:

git clone https://github.com/Linyue-dev/HomeBudget_WPF.git
# Open in Visual Studio
# Restore NuGet packages
# Build solution
# Run HomeBudget_WPF.csproj

Using the Core Budget Library (API)

var budget = new HomeBudget("mybudget.db");
budget.LoadDatabase();

// Add transaction
budget.transactions.Add(DateTime.Now, categoryId, 50.00m, "Grocery shopping");

// Query monthly data
var report = budget.GetBudgetItemsByMonth(
    DateTime.Now.AddMonths(-1),
    DateTime.Now,
    false,
    0
);

Roadmap

  • Dark mode UI
  • Cloud sync
  • Import data from CSV/Excel
  • Mobile version (MAUI)
  • Web dashboard (Blazor)

License

This project is released under the GNU General Public License (GPL).

About

Homebudget app

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors