Skip to content

abdullokhonz/Bookkeeping

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

30 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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.


Releases

No releases published

Packages

 
 
 

Contributors