MuhasebeApp is a modern accounting API built with .NET 8, Entity Framework Core, and PostgreSQL. It features a scalable, enterprise-grade architecture inspired by leading SaaS accounting solutions (like Paraşüt), and supports CQRS, MediatR, and robust user management.
- User Management:
- Phone number-based login (with area code separation)
- Optional email and address fields
- Secure password hashing (BCrypt)
- Company Management:
- Singular table naming convention
- Tax office and tax number fields
- Accounting Core:
- Modern chart of accounts structure
- Separate tables for Customers, Suppliers, and Bank Accounts
- Flexible Account entity referencing Customer, Supplier, or BankAccount
- Account categories seeded by default
- CQRS Architecture:
- Command/Query separation with MediatR
- Service and repository layers for all master data
- Database Management:
- Automated migrations and seed data
- PostgreSQL support
- .NET 8 SDK
- PostgreSQL database
-
Clone the repository:
git clone https://github.com/yourusername/muhasebeapp.git cd muhasebeapp -
Configure the database:
- Update your
appsettings.jsonwith your PostgreSQL connection string.
- Update your
-
Apply migrations and seed data:
dotnet ef database update --project MuhasebeAPI.Infrastructure/MuhasebeAPI.Infrastructure.csproj --startup-project MuhasebeAPI/MuhasebeAPI.API.csproj
-
Run the application:
dotnet run --project MuhasebeAPI/MuhasebeAPI.API.csproj
-
Access the API:
- Swagger UI:
https://localhost:5001/swagger
- Swagger UI:
- User Endpoints:
- Register, login, and manage users via phone number
- Company Endpoints:
- Create and manage companies, including tax office and tax number
- Customer, Supplier, BankAccount Endpoints:
- Full CRUD operations with CQRS
- Account Endpoints:
- Create accounts linked to customers, suppliers, or bank accounts
- .NET 8
- Entity Framework Core
- PostgreSQL
- MediatR (CQRS)
- BCrypt (Password Hashing)
- Swagger (API Documentation)
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.