How kyledelfin2006/libro-library-system works
Libro is a Spring Boot library-management REST API. Its main workflow is a client request routed through security and a domain controller, processed by a service, mapped between DTOs and entities, and persisted in PostgreSQL. Book operations include CRUD, search, paging, filtering, sorting, and collection analytics; user routes manage accounts and profiles, including password changes. Shared concerns include API error handling, validation, OpenAPI, and Flyway schema setup. Edges reflect the README and shown/indexed source references; unsampled implementation details are not inferred.
Main entry points: BookAPI.java Book routes · UserAPI.java User routes · UserService.java Account operations · BookService.java Catalog operations
Components 20
Book Catalog
- Book routes
src/main/java/app/book/controller/BookAPI.java - Catalog operations
src/main/java/app/book/service/BookService.java - Book API DTOs
src/main/java/app/book/dto - Book mapping
src/main/java/app/book/mapper/BookMapper.java - Book copy model
src/main/java/app/book/entity/Book.java
User Accounts
- User routes
src/main/java/app/user/controller/UserAPI.java - Account operations
src/main/java/app/user/service/UserService.java - User API DTOs
src/main/java/app/user/dto - User mapping
src/main/java/app/user/mapper/UserMapper.java - User and enums
src/main/java/app/user/entity - Password policy
src/main/java/app/user/validation/PasswordPolicy.java
Shared API
- Request security
src/main/java/app/auth/SecurityConfig.java - API responses
src/main/java/app/global/responses - Exception handling
src/main/java/app/global/exceptions/GlobalExceptionHandler.java - OpenAPI config
src/main/java/app/global/config/OpenApiConfig.java
Persistence
- Book repository
src/main/java/app/book/repository/BookRepository.java - User repository
src/main/java/app/user/repository/UserRepository.java - PostgreSQL
- Schema migrations
src/main/resources/db/migration
Other components
- API client
Connections 22
- API client → Request security: sends HTTP
README.md - Request security → Book routes: permits requests
README.md - Request security → User routes: permits requests
README.md - Book routes → Catalog operations: delegates operations
README.md - Book routes → Book mapping: maps responses
src/main/java/app/book/controller/BookAPI.java - Book routes → Book API DTOs: accepts and returns
src/main/java/app/book/controller/BookAPI.java - Catalog operations → Book repository: queries and saves
src/main/java/app/book/service/BookService.java - Catalog operations → Book mapping: maps entities
src/main/java/app/book/service/BookService.java - Book repository → Book copy model: persists
src/main/java/app/book/repository/BookRepository.java - User routes → Account operations: delegates operations
src/main/java/app/user/controller/UserAPI.java - Account operations → User repository: queries and saves
src/main/java/app/user/service/UserService.java - Account operations → User mapping: maps profiles
src/main/java/app/user/service/UserService.java - Account operations → Password policy: validates passwords
- User repository → User and enums: persists
src/main/java/app/user/repository/UserRepository.java - Book routes → API responses: wraps results
src/main/java/app/book/controller/BookAPI.java - User routes → API responses: wraps results
src/main/java/app/user/controller/UserAPI.java - Exception handling → API responses: formats errors
src/main/java/app/global/exceptions/GlobalExceptionHandler.java - Book repository → PostgreSQL: accesses via JPA
README.md - User repository → PostgreSQL: accesses via JPA
README.md - Schema migrations → PostgreSQL: updates schema
README.md - Book routes → OpenAPI config: documents routes
README.md - User routes → OpenAPI config: documents routes
README.md