Architecture
ClientSpring Security 6 + JWTREST controllersService layerDatabase
The problem
Several services returned inconsistent responses and handled auth differently, which slowed front-end work and made errors hard to trace.
Approach
- Spring Boot 3 with Spring Security 6 and database-backed JWT authentication.
- A generic response wrapper and a global exception handler for uniform responses and errors.
- Pagination, file operations and Spring Data JPA repositories.
Outcome
- Every endpoint returns the same response shape, so clients handle success and errors one way.