How hissamr/bookmind works
BookMind is a Spring Boot REST API for book discovery and commerce. Users browse and filter a catalog, authenticate, manage carts and wishlists, and work with orders; administrators also manage catalog and order status. The sampled services show business logic delegating to Spring Data repositories, while the README documents additional API capabilities. AI summaries and recommendations are marked coming soon, so their wiring is not assumed. The excerpts do not establish checkout-to-order dispatch or external database/cache calls.
Main entry points: WishListService.java Wishlist service · BookRepository.java Book repository · CartController.java Cart API · WishListController.java Wishlist API
Components 25
REST API
- Application entry
src/main/java/com/bookmind/BookMindApplication.java - Book API
src/main/java/com/bookmind/controller/BookController.java - Cart API
src/main/java/com/bookmind/controller/CartController.java - Order API
src/main/java/com/bookmind/controller/OrderController.java - Wishlist API
src/main/java/com/bookmind/controller/WishListController.java - Authentication API
src/main/java/com/bookmind/controller/AuthenticationController.java - Summary API
src/main/java/com/bookmind/controller/BookSummaryController.java
Commerce Services
- Catalog service
src/main/java/com/bookmind/service/BookService.java - Cart service
src/main/java/com/bookmind/service/CartService.java - Order service
src/main/java/com/bookmind/service/OrderService.java - Wishlist service
src/main/java/com/bookmind/service/WishListService.java - Summary service
src/main/java/com/bookmind/service/BookSummaryService.java
Identity and Security
- Authentication service
src/main/java/com/bookmind/service/AuthenticationService.java - JWT security
src/main/java/com/bookmind/security/JwtAuthenticationFilter.java - Current-user provider
src/main/java/com/bookmind/security/AuthenticatedUserProvider.java - Security configuration
src/main/java/com/bookmind/config/SecurityConfiguration.java
Persistence and AI
- Book repository
src/main/java/com/bookmind/repository/BookRepository.java - Cart repositories
src/main/java/com/bookmind/repository/CartRepository.java - Order repositories
src/main/java/com/bookmind/repository/OrderRepository.java - Wishlist repository
src/main/java/com/bookmind/repository/WishListRepository.java - User repository
src/main/java/com/bookmind/repository/UserRepository.java - Google AI client
src/main/java/com/bookmind/service/GoogleAiClient.java
Other components
- Shopper / Admin
- AI provider
- Relational database
Connections 31
- Shopper / Admin → Book API: browses / manages
- Shopper / Admin → Cart API: manages cart
- Shopper / Admin → Order API: manages orders
- Shopper / Admin → Wishlist API: manages lists
- Shopper / Admin → Authentication API: authenticates
- Shopper / Admin → Summary API: requests summaries
- Book API → Catalog service: invokes
- Catalog service → Book repository: searches / persists
- Cart API → Cart service: invokes
- Cart API → Current-user provider: gets user ID
- Cart service → Cart repositories: reads / writes
- Cart service → Book repository: loads books
- Order API → Order service: invokes
- Order service → Order repositories: reads / writes
- Wishlist API → Wishlist service: invokes
- Wishlist API → Current-user provider: gets user ID
- Wishlist service → Wishlist repository: reads / writes
- Wishlist service → User repository: loads / saves users
- Wishlist service → Book repository: loads books
- Authentication API → Authentication service: invokes
- Authentication service → User repository: reads / writes users
- Authentication API → JWT security: uses authenticated context
- Security configuration → JWT security: configures filter
- Summary API → Summary service: invokes
- Summary service → Google AI client: delegates summary
- Google AI client → AI provider: requests generation
- Book repository → Relational database: reads / writes
- Cart repositories → Relational database: reads / writes
- Order repositories → Relational database: reads / writes
- Wishlist repository → Relational database: reads / writes
- User repository → Relational database: reads / writes