Next-Generation Enterprise Accounting & ERP Foundation
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.
| π° 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 |
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)
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.
ποΈ IFRS Accounts (ΠΠ‘Π€Π) β 9 Screen Workflow
Unified Main Table
| Details | Create | Edit | Delete |
![]() | ![]() | ![]() | ![]() |
| Details | Create | Edit | Delete |
![]() | ![]() | ![]() | ![]() |
ποΈ IFRS Accounts (ΠΠ‘Π€Π) β 9 Screen Workflow
Unified Main Table
| Details | Create | Edit | Delete |
![]() | ![]() | ![]() | ![]() |
| Details | Create | Edit | Delete |
![]() | ![]() | ![]() | ![]() |
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).
-
Clone the repository:
git clone https://github.com/abdullokhonz/Bookkeeping.git cd Bookkeeping -
Navigate to the Main Server project:
The solution is structured to build all dependencies from this entry point:
cd Bookkeeping cd Bookkeeping -
Configure Environment (appsettings.json):
Update the configuration file inside the
Bookkeepingfolder 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" } } -
Build & Launch:
This will restore all projects (Server, Client, Contracts) and start the application:
dotnet restore dotnet build dotnet runThe platform will be available at your configured
BaseUrl.
| 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.
|
Contributions are welcome! If you have suggestions or want to contribute, please feel free to open issues or pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.







































































