How bhaskarsunchu/productservice works
This is a Spring-based product catalog API. A client sends product, category, or pagination requests to the controller, which delegates catalog operations to the primary self-managed service and returns product data or response DTOs. That service reads and writes product and category repositories backed by JPA entities. A separate FakeStore adapter provides an external API implementation, while controller advice maps known exceptions to error responses. The README is empty; edges are limited to relationships shown in excerpts or the source index.
Main entry points: ProductRepository.java Product repository · SelfProductService.java Self product service · FakeStoreService.java FakeStore adapter · ProductController.java Product controller
Components 16
API layer
- Product controller
src/main/java/com/scaler/ecommerceprojectjune24/controller/ProductController.java - Request and response DTOs
src/main/java/com/scaler/ecommerceprojectjune24/dto - Exception advice
src/main/java/com/scaler/ecommerceprojectjune24/advice/ControllerAdvice.java - Catalog exceptions
src/main/java/com/scaler/ecommerceprojectjune24/exception
Catalog services
- Product service contract
src/main/java/com/scaler/ecommerceprojectjune24/service/ProductService.java - Self product service
src/main/java/com/scaler/ecommerceprojectjune24/service/SelfProductService.java - FakeStore adapter
src/main/java/com/scaler/ecommerceprojectjune24/service/FakeStoreService.java
Domain and persistence
- Product repository
src/main/java/com/scaler/ecommerceprojectjune24/repository/ProductRepository.java - Category repository
src/main/java/com/scaler/ecommerceprojectjune24/repository/CategoryRepository.java - Product entity
src/main/java/com/scaler/ecommerceprojectjune24/model/Product.java - Category entity
src/main/java/com/scaler/ecommerceprojectjune24/model/Category.java - Base model
src/main/java/com/scaler/ecommerceprojectjune24/model/BaseModel.java - Product title projection
src/main/java/com/scaler/ecommerceprojectjune24/repository/projection/ProductWithTitleAndId.java
Other components
- API client
- JPA database
- FakeStore API
Connections 19
- API client → Product controller: sends requests
src/main/java/com/scaler/ecommerceprojectjune24/controller/ProductController.java - Product controller → Product service contract: delegates catalog operations
src/main/java/com/scaler/ecommerceprojectjune24/controller/ProductController.java - Product controller → Request and response DTOs: accepts and builds
src/main/java/com/scaler/ecommerceprojectjune24/controller/ProductController.java - Self product service → Product service contract: implements
src/main/java/com/scaler/ecommerceprojectjune24/service/SelfProductService.java - FakeStore adapter → Product service contract: implements
src/main/java/com/scaler/ecommerceprojectjune24/service/FakeStoreService.java - Self product service → Product repository: queries and saves
src/main/java/com/scaler/ecommerceprojectjune24/service/SelfProductService.java - Self product service → Category repository: queries and saves
src/main/java/com/scaler/ecommerceprojectjune24/service/SelfProductService.java - Product repository → Product entity: persists and queries
src/main/java/com/scaler/ecommerceprojectjune24/repository/ProductRepository.java - Category repository → Category entity: persists and queries
src/main/java/com/scaler/ecommerceprojectjune24/repository/CategoryRepository.java - Product repository → JPA database: accesses
- Category repository → JPA database: accesses
- Product entity → Category entity: references category
src/main/java/com/scaler/ecommerceprojectjune24/model/Product.java - Product entity → Base model: extends
src/main/java/com/scaler/ecommerceprojectjune24/model/Product.java - Category entity → Base model: extends
src/main/java/com/scaler/ecommerceprojectjune24/model/Category.java - Product repository → Product title projection: returns projection
src/main/java/com/scaler/ecommerceprojectjune24/repository/ProductRepository.java - FakeStore adapter → FakeStore API: sends HTTP requests
src/main/java/com/scaler/ecommerceprojectjune24/service/FakeStoreService.java - FakeStore adapter → Request and response DTOs: uses request and API DTOs
src/main/java/com/scaler/ecommerceprojectjune24/service/FakeStoreService.java - Exception advice → Catalog exceptions: handles exceptions
src/main/java/com/scaler/ecommerceprojectjune24/advice/ControllerAdvice.java - Exception advice → Request and response DTOs: builds error response
src/main/java/com/scaler/ecommerceprojectjune24/advice/ControllerAdvice.java