A personal and family finance management system built with C# following MVP (Model-View-Presenter) architecture. The core library is compiled as a reusable DLL, paired with a WPF desktop client for the presentation layer.
- C# / .NET - Core development platform
- WPF - Desktop UI framework
- MVP Architecture - Clean separation of concerns
- SQLite - Embedded database
- Entity Framework Core - ORM for data access
- LINQ - Query operations
Transaction Management
- Full CRUD operations for income, expenses, investments, debt, and savings
- Category-based organization with customizable expense types
- Date-range filtering and search capabilities
Reporting & Analytics
- Monthly summaries with running balance tracking
- Category-wise spending analysis
- Time-based financial reports
- Cross-category aggregation
Architecture Highlights
- Core business logic packaged as reusable DLL
- Clean separation between Model, View, and Presenter layers
- SQLite database with normalized schema and foreign key relationships
- Secure password hashing for user authentication
HomeBudget/
├── Models/ # Data models (Category, Transaction, BudgetItem)
├── Services/ # Business logic (Auth, Database, Category, Transaction)
├── Presenter/ # MVP presenter layer
└── Views/ # WPF presentation layer
// Initialize budget system
var budget = new HomeBudget("budget.db");
budget.LoadDatabase();
// Add transaction
budget.transactions.Add(DateTime.Now, categoryId, 50.00m, "Grocery shopping");
// Generate monthly report
var report = budget.GetBudgetItemsByMonth(
DateTime.Now.AddMonths(-1),
DateTime.Now,
filterFlag: false,
categoryId: 0
);GNU General Public License