🎯 Status: Planned. This project will port the lessons from two Java/Spring Boot practice projects into a single, complete Kotlin + Spring Boot REST API.
A banking REST API built with Kotlin and Spring Boot, combining validated domain modeling with a full CRUD layer and persistence — the natural next step after practicing each half separately in Java.
This project consolidates two earlier practice repos:
- SPRINGBOOT1 — proved out the REST layer: Controller → Service architecture, dependency injection, full CRUD, proper HTTP status handling
- SPRINGBOOT5 — proved out the domain layer: validated
Account,Client, andTransactionmodels with correct money handling (BigDecimal), immutability, and business-rule enforcement
KotlinBankingAPI will combine both — rewritten in Kotlin — into one finished project.
- Kotlin data classes / classes for
Account,Client,Transaction(porting the validation logic already proven in SPRINGBOOT5) - REST controllers for account operations: open account, deposit, withdraw, view transaction history (porting the pattern proven in SPRINGBOOT1)
- Persistence via Spring Data JPA + a real database (MySQL or PostgreSQL), replacing the in-memory storage used in both practice projects
- Proper error handling with meaningful HTTP status codes (404 / 400 / 409 for business-rule violations like insufficient balance)
- Swagger/OpenAPI documentation
- Unit tests for the domain logic (deposit/withdraw rules, validation)
- (Stretch goal) Basic authentication for account access
- Kotlin
- Spring Boot (Web, Data JPA)
- MySQL or PostgreSQL
- Swagger/OpenAPI
- JUnit / Kotest for testing
This project is part of a deliberate effort to build Kotlin competency on top of existing Java/Spring Boot practice and strong JVM fundamentals — Kotlin appears as a requirement in several backend job postings (Accenture, Tet Digital, Eika, Gjensidige) alongside Java, making it a natural, low-risk extension of skills already demonstrated in the two source projects above.
This README is a planning placeholder. Implementation has not started yet — check back for updates, or see the linked practice projects for the groundwork already completed.