A full-featured, easy-to-use accounting application built with Blazor Web App (.NET 9) and PostgreSQL. Designed for non-accountants who need professional accounting capabilities.
- Frontend: Blazor Server (Interactive Server rendering) with MudBlazor UI
- Backend: ASP.NET Core 9, Clean Architecture
- Database: PostgreSQL with Entity Framework Core
- Auth: ASP.NET Core Identity
- Validation: FluentValidation
src/
├── Accounting.Domain/ # Entities, enums, value objects, interfaces
├── Accounting.Application/ # DTOs, service interfaces, validation
├── Accounting.Infrastructure/ # EF Core, repositories, service implementations
└── Accounting.Web/ # Blazor Server UI (startup project)
tests/
└── Accounting.Domain.Tests/ # Unit tests
- Chart of Accounts - Pre-configured with 30+ standard accounts across 5 types
- Double-Entry Journal Entries - Full debit/credit system with balance validation
- General Ledger - Per-account transaction history with running balances
- Invoicing - Create, send, and track customer invoices with auto journal entries
- Bill Management - Record vendor bills and track payables
- Customer & Vendor Management - Full contact and payment term tracking
- Financial Reports - Profit & Loss, Balance Sheet
- Dashboard - KPIs, charts, alerts, and quick actions
- Multi-Tenant - Shared database with tenant isolation via query filters
- Dark Mode - Toggle between light and dark themes
- .NET 9 SDK
- PostgreSQL (local or hosted)
-
Clone and configure the database connection:
Edit
src/Accounting.Web/appsettings.jsonand update the connection string:"ConnectionStrings": { "DefaultConnection": "Host=localhost;Port=5432;Database=accounting_db;Username=postgres;Password=YOUR_PASSWORD" }
-
Install EF Core tools (if not installed):
dotnet tool install --global dotnet-ef
-
Create and apply database migrations:
dotnet ef migrations add InitialCreate --project src/Accounting.Infrastructure --startup-project src/Accounting.Web dotnet ef database update --project src/Accounting.Infrastructure --startup-project src/Accounting.Web
-
Run the application:
dotnet run --project src/Accounting.Web
-
Open
https://localhost:5001in your browser.
- Assets - Things you OWN (cash, equipment, money owed to you)
- Liabilities - Things you OWE (loans, unpaid bills)
- Equity - Owner's stake (investment minus withdrawals)
- Revenue - Money you EARN (sales, services)
- Expenses - Money you SPEND (rent, salaries, supplies)
Assets = Liabilities + Equity - This equation must always balance.
Every transaction affects at least TWO accounts. When you buy supplies for $100:
- Supplies Expense goes UP by $100 (Debit)
- Cash goes DOWN by $100 (Credit)
- Debits must ALWAYS equal Credits
- User registration and login UI
- PDF invoice generation (QuestPDF)
- Email invoices to customers
- Bank reconciliation
- Recurring transactions
- Budget tracking
- Tax reporting
- .NET MAUI mobile app (reusing Razor components)
- Multi-currency support