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.







































































