A personal finance management API built with .NET 9
KontoApi is a RESTful API for managing personal finances, including:
- User authentication with JWT tokens
- Budget management
- Transaction tracking (income, expenses, transfers)
- Bank statement import
- .NET 9 - Runtime
- ASP.NET Core - Web framework
- Entity Framework Core - ORM
- PostgreSQL - Database
- FluentValidation - Request validation
- Serilog - Structured logging
- xUnit + Moq - Testing
src/
├── Api/ # Controllers, middleware, validators
├── Application/ # Use cases, DTOs, interfaces
├── Domain/ # Entities, value objects
└── Infrastructure/ # Repositories, external services
tests/
└── KontoApi.Tests/ # Unit tests- .NET 9 SDK
- PostgreSQL
- Node.js (for commit linting)
-
Clone the repository
-
Configure the database connection in
src/Infrastructure/KontoDbContext.cs -
Set up JWT secret:
cd src/Api dotnet user-secrets set "Jwt:Key" "your-secret-key-min-32-chars"
-
Install commit hooks:
npm install
dotnet run --project src/ApiThe API will be available at http://localhost:5076 (or https://localhost:7049) with Swagger UI at /swagger.
dotnet testSee interactive documentation and try out requests in Swagger UI
See CONTRIBUTING.md for guidelines
Apache 2.0, see LICENSE for details