Skip to content

About

๐Ÿ“Š Modern full-stack bookkeeping and financial control dashboard built with ASP.NET Core, Blazor, and PostgreSQL.

Topics

Resources

Stars

45 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

32 Commits

Folders and files

Repository files navigation

๐ŸŒŒ Bookkeeping Platform

Next-Generation Enterprise Accounting & ERP Foundation

License Build Status Contributors

.NET 10 Blazor PostgreSQL CQRS Clean Architecture


Bookkeeping is a production-ready, scalable financial management system built on Clean Architecture and CQRS. Designed as a robust foundation for a full ERP ecosystem, it moves beyond simple CRUD to handle complex business logic, IFRS compliance, and real-time financial tracking.

โœจ Enterprise-Grade Features

๐Ÿ’ฐ Financial Engine ๐ŸŒ IFRS Compliance ๐Ÿ“Š Real-Time Analytics
โ€ข Document lifecycle (Draft โž” Processed)
โ€ข Automated sequence numbering
โ€ข Dynamic VAT calculation
โ€ข Tree-based account structures
โ€ข Hierarchical financial modeling
โ€ข Multi-region tax ready
โ€ข Live dashboard updates
โ€ข Interactive MudBlazor charts
โ€ข Instant financial insights
๐Ÿ“š Master Data ๐Ÿ” Advanced Security ๐Ÿ“‚ Asset Handling
โ€ข Centralized reference data
โ€ข Flexible categorization
โ€ข Smart alphabetical sorting
โ€ข JWT Auth & Refresh Tokens
โ€ข Protected API endpoints
โ€ข Role-based access control
โ€ข Secure file uploads
โ€ข Document attachment system
โ€ข Image & media management

๐Ÿ—๏ธ Architecture & CQRS

The platform enforces a strict Clean Architecture, ensuring the core domain remains isolated from infrastructure and presentation concerns. State mutations and data retrieval are strictly separated using the CQRS pattern via MediatR.

  • ๐ŸŸข Commands: Mutate state containing complex business validations.
  • ๐Ÿ”ต Queries: Highly optimized read operations returning clean DTOs.
  • ๐Ÿงฉ Handlers: Isolated business logic ensuring high testability and maintainability.
๐Ÿ“‚ View Project Structure ๐Ÿ‘‡
๐Ÿ“ฆ Bookkeeping Solution  
โ”œโ”€โ”€ ๐Ÿ“‚ Bookkeeping  
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ Bookkeeping (Main Server / API)  
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ Application (Commands / Queries / Handlers)  
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ Entities (Domain Models)  
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ Controllers (API Endpoints)  
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ Infrastructure (EF Core, Auth, Repositories)  
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ Services (Business logic implementations)  
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ Components (Blazor Server UI)  
โ”‚   โ”‚  
โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ Bookkeeping.Client (Blazor WASM Frontend)  
โ”‚       โ”œโ”€โ”€ ๐Ÿ“‚ Pages (Accounts, Auth, Orders, etc.)  
โ”‚       โ”œโ”€โ”€ ๐Ÿ“‚ Providers (Auth State)  
โ”‚       โ””โ”€โ”€ ๐Ÿ“‚ Layouts & Dialogs  
โ”‚  
โ””โ”€โ”€ ๐Ÿ“‚ Bookkeeping.Contracts (Shared Library)  
    โ”œโ”€โ”€ ๐Ÿ“‚ DTOs & Models  
    โ”œโ”€โ”€ ๐Ÿ“‚ Enums  
    โ””โ”€โ”€ ๐Ÿ“‚ Common (Responses, Results, Pagination) 

๐Ÿ“ธ Application Gallery

Explore the complete visual ecosystem of the Bookkeeping application. The gallery showcases our sophisticated UI, covering complex CRUD workflows for both data records and their respective categories across Light and Dark themes.

๐Ÿ” 1. Authentication & Onboarding (Fixed Theme)


The authentication layer uses a dedicated, high-focus layout.

Login PageRegistration Page
LoginRegister

โ˜€๏ธ 2. Light Theme Experience


๐Ÿ“Š Dashboard / Home Page

Dashboard Light

๐Ÿ‘ค User Profile
Profile ViewEdit Profile
Profile ViewEdit Profile
๐Ÿ—‚๏ธ IFRS Accounts (ะœะกะคะž) โ€” 9 Screen Workflow

Unified Main Table

IFRS Main

๐Ÿ”น Account Management

DetailsCreateEditDelete

๐Ÿ”น Category Management

DetailsCreateEditDelete
๐Ÿ“‹ Reference Books (ะกะฟั€ะฐะฒะพั‡ะฝะธะบะธ) โ€” 9 Screen Workflow

Unified Main Table

Reference Main

๐Ÿ”น Reference Item Management

DetailsCreateEditDelete

๐Ÿ”น Category Management

DetailsCreateEditDelete
๐Ÿ’ฐ Cash Receipt Orders (ะŸะšะž)
Orders List
DetailsCreateEditDelete
๐Ÿ“ˆ Income Articles (ะกั‚ะฐั‚ัŒะธ ะดะพั…ะพะดะพะฒ)
Income List
DetailsCreateEditDelete
โš–๏ธ VAT Management (ะะ”ะก)
VAT List
DetailsCreateEditDelete

๐ŸŒ™ 3. Dark Theme Experience


๐Ÿ“Š Dashboard / Home Page

Dashboard Dark

๐Ÿ‘ค User Profile
Profile ViewEdit Profile
๐Ÿ—‚๏ธ IFRS Accounts (ะœะกะคะž) โ€” 9 Screen Workflow

Unified Main Table

IFRS Main Dark

๐Ÿ”น Account Management

DetailsCreateEditDelete

๐Ÿ”น Category Management

DetailsCreateEditDelete
๐Ÿ“‹ Reference Books (ะกะฟั€ะฐะฒะพั‡ะฝะธะบะธ) โ€” 9 Screen Workflow

Unified Main Table

Reference Main Dark

๐Ÿ”น Reference Item Management

DetailsCreateEditDelete

๐Ÿ”น Category Management

DetailsCreateEditDelete
๐Ÿ’ฐ Cash Receipt Orders (ะŸะšะž)
Orders List Dark
DetailsCreateEditDelete
๐Ÿ“ˆ Income Articles (ะกั‚ะฐั‚ัŒะธ ะดะพั…ะพะดะพะฒ)
Income List Dark
DetailsCreateEditDelete
โš–๏ธ VAT Management (ะะ”ะก)
VAT List Dark
DetailsCreateEditDelete

๐Ÿš€ Getting Started

Follow these steps to get a local copy up and running. Running the commands from the main server directory will automatically restore and build all linked projects (Client and Contracts).

๐Ÿ“‹ 1. Prerequisites

๐Ÿ› ๏ธ 2. Installation & Setup

  1. Clone the repository:
    git clone https://github.com/abdullokhonz/Bookkeeping.git
    cd Bookkeeping
  2. Navigate to the Main Server project:

    The solution is structured to build all dependencies from this entry point:

    cd Bookkeeping
    cd Bookkeeping
  3. Configure Environment (appsettings.json):

    Update the configuration file inside the Bookkeeping folder with your credentials. You will need to set up the database, JWT, and service providers:

    {
      "ApiSettings": { "BaseUrl": "https://localhost:7277/" },
      "ConnectionStrings": {
        "DbPostgres": "Host=localhost;Port=5432;Database=BookkeepingDB;User ID=postgres;Password=your_password"
      },
      "JwtSettings": {
        "Key": "YOUR_SECURE_JWT_KEY_HERE",
        "Issuer": "Bookkeeping_IdentityServer",
        "Audience": "Bookkeeping_WebClient",
        "LifetimeMinutes": 15
      },
      "EmailSettings": {
        "SmtpHost": "YOUR_SMTP_HOST_HERE",
        "SmtpPort": "YOUR_SMTP_PORT_HERE",
        "FromName": "Bookkeeping Notifications",
        "FromEmail": "YOUR_EMAIL_HERE",
        "EmailPassword": "YOUR_EMAIL_PASSWORD_HERE"
      },
      "SmsSettings": {
        "Dlm": "YOUR_SMS_DLM_HERE",
        "T": "YOUR_SMS_T_HERE",
        "Login": "YOUR_SMS_LOGIN_HERE",
        "PassHash": "YOUR_SMS_PASSHASH_HERE",
        "Sender": "YOUR_SMS_SENDER_HERE"
      }
    }
  4. Build & Launch:

    This will restore all projects (Server, Client, Contracts) and start the application:

    dotnet restore
    dotnet build
    dotnet run

    The platform will be available at your configured BaseUrl.


๐Ÿ” Important Notes on Authentication

Environment Access Instructions
๐ŸŒ Web Frontend (Blazor) Full authentication flow is active. You can register and log in to access the dashboard.
๐Ÿš€ Postman / External Use /auth/login to obtain a token and add it to Authorization: Bearer header.
๐Ÿ› ๏ธ Swagger UI Warning: Authorize via Swagger UI is currently not configured.
To test via Swagger: Manually remove the [Authorize] attribute from Controllers.

๐Ÿค Contributing

Contributions are welcome! If you have suggestions or want to contribute, please feel free to open issues or pull requests.

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


About

๐Ÿ“Š Modern full-stack bookkeeping and financial control dashboard built with ASP.NET Core, Blazor, and PostgreSQL.

Topics

Resources

Stars

45 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages