Skip to content

Koshai/AccountingForAll

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LedgerLite - Accounting Application

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.

Tech Stack

  • 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

Architecture

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

Features

  • 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

Prerequisites

Getting Started

  1. Clone and configure the database connection:

    Edit src/Accounting.Web/appsettings.json and update the connection string:

    "ConnectionStrings": {
      "DefaultConnection": "Host=localhost;Port=5432;Database=accounting_db;Username=postgres;Password=YOUR_PASSWORD"
    }
  2. Install EF Core tools (if not installed):

    dotnet tool install --global dotnet-ef
  3. 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
  4. Run the application:

    dotnet run --project src/Accounting.Web
  5. Open https://localhost:5001 in your browser.

Accounting Concepts (for Beginners)

The 5 Account Types

  • 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)

The Golden Rule

Assets = Liabilities + Equity - This equation must always balance.

Double-Entry Bookkeeping

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

Future Roadmap

  • 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors