Enterprise Banking API

Java

Enterprise-grade banking API with JWT authentication, role-based access control, and transaction management

Tech Stack

Java 21
Spring Boot
PostgreSQL
Redis
Docker
Flyway

Features

JWT Authentication & Authorization
Role-based Access Control
Account Management
Transaction History with Pagination
Redis Caching for Performance
OpenAPI/Swagger Documentation

Code Sample

AccountController.java
@RestController
@RequestMapping("/api/v1/accounts")
@RequiredArgsConstructor
public class AccountController {

    private final AccountService accountService;

    @PostMapping
    @PreAuthorize("hasRole('USER')")
    public ResponseEntity<AccountResponse> createAccount(
            @RequestParam BigDecimal initialBalance) {
        return ResponseEntity.ok(
            accountService.createAccount(initialBalance));
    }

    @PostMapping("/{id}/transfer")
    public ResponseEntity<TransferResponse> transferFunds(
            @PathVariable Long id,
            @RequestParam Long toAccountId,
            @RequestParam BigDecimal amount) {
        return ResponseEntity.ok(
            accountService.transfer(id, toAccountId, amount));
    }
}
View Source Docker Hub Live Demo