Secure banking cards management REST API built with Spring Boot, Spring Security, JWT, JPA, Liquibase and PostgreSQL.
- JWT authentication
- Roles:
ADMINandUSER - Admin can manage users and cards
- User can view own cards
- Filtering and pagination for cards
- Card balance consultation
- Transfers between user's own cards
- Card blocking request workflow
- Liquibase migrations
- Swagger / OpenAPI documentation
- Docker support
- Unit and integration tests
- Java 21
- Spring Boot 3
- Spring Security
- JWT
- Spring Data JPA
- PostgreSQL
- Liquibase
- MapStruct
- Lombok
- Swagger / Springdoc
- Docker / Docker Compose
- JUnit 5 / Mockito / MockMvc
Before running the project, make sure you have installed:
- Java 21
- Maven 3.9+
- Docker and Docker Compose
- PostgreSQL, if you want to run without Docker
After starting the application, Swagger and OpenAPI documentation are available at:
- Swagger UI: http://localhost:8080/swagger-ui/index.html
- OpenAPI JSON: http://localhost:8080/v3/api-docs
src/main/java/com/mercure/bankrest
├── auth
├── user
├── card
├── transfer
├── blockrequest
├── common
├── security
└── config