How helena141/frozeenfood-api works
This is a Spring-based frozen-food B2B/B2C sales and fulfillment backend. Customers authenticate, browse a catalog with batch-aware stock and tiered pricing, place orders, then arrange delivery and payment; operators manage products, inventory, deliveries, and sales reporting. The graph groups API entry points, commerce, fulfillment, and persistence/security. Edges are limited to calls or dependencies visible in excerpts or the source index; several substantial features are present in the tree but their runtime wiring was not sampled.
Main entry points: repository JPA repositories · DeliveryService.java Delivery planning · FefoInventoryService.java FEFO stock · entity Domain entities
Components 27
API and access
- Authentication
src/main/java/com/lezzat/b2b2c/frozenfood/service/AuthService.java - Customer API
src/main/java/com/lezzat/b2b2c/frozenfood/controller/CustomerController.java - Product API
src/main/java/com/lezzat/b2b2c/frozenfood/controller/ProductController.java - Inventory API
src/main/java/com/lezzat/b2b2c/frozenfood/controller/InventoryController.java - Order APIs
src/main/java/com/lezzat/b2b2c/frozenfood/controller - Delivery API
src/main/java/com/lezzat/b2b2c/frozenfood/controller/DeliveryController.java - Payment API
src/main/java/com/lezzat/b2b2c/frozenfood/controller/PaymentController.java - Reports API
src/main/java/com/lezzat/b2b2c/frozenfood/controller/ReportController.java
Catalog and orders
- Product catalog
src/main/java/com/lezzat/b2b2c/frozenfood/service/ProductService.java - Customer management
src/main/java/com/lezzat/b2b2c/frozenfood/service/CustomerService.java - Order processing
src/main/java/com/lezzat/b2b2c/frozenfood/service/OrderB2CService.java - B2B orders
src/main/java/com/lezzat/b2b2c/frozenfood/service/OrderService.java - Tiered pricing
src/main/java/com/lezzat/b2b2c/frozenfood/service/TieringPriceService.java
Fulfillment operations
- FEFO stock
src/main/java/com/lezzat/b2b2c/frozenfood/service/core/FefoInventoryService.java - Batch management
src/main/java/com/lezzat/b2b2c/frozenfood/service/ProductBatchService.java - Delivery planning
src/main/java/com/lezzat/b2b2c/frozenfood/service/DeliveryService.java - Routing and scheduling
src/main/java/com/lezzat/b2b2c/frozenfood/service/core - Expiry alerts
src/main/java/com/lezzat/b2b2c/frozenfood/service/core/ExpiryAlertScheduler.java - Payment handling
src/main/java/com/lezzat/b2b2c/frozenfood/service/PaymentService.java - Sales reporting
src/main/java/com/lezzat/b2b2c/frozenfood/service/ReportService.java - Invoice PDF
src/main/java/com/lezzat/b2b2c/frozenfood/service/NotaPdfService.java
Persistence and records
- JPA repositories
src/main/java/com/lezzat/b2b2c/frozenfood/repository - Domain entities
src/main/java/com/lezzat/b2b2c/frozenfood/entity - Application database
Other components
- API client
- Google identity
- Payment gateway
Connections 31
- API client → Authentication: authenticates
- API client → Product API: requests catalog
- API client → Order APIs: submits orders
- API client → Delivery API: requests delivery
- API client → Payment API: requests payment
- API client → Reports API: requests reports
- Authentication → Google identity: verifies token
src/main/java/com/lezzat/b2b2c/frozenfood/service/AuthService.java - Authentication → JPA repositories: uses customer data
src/main/java/com/lezzat/b2b2c/frozenfood/service/AuthService.java - Customer API → Customer management: delegates
src/main/java/com/lezzat/b2b2c/frozenfood/controller/CustomerController.java - Product API → Product catalog: delegates
src/main/java/com/lezzat/b2b2c/frozenfood/controller/ProductController.java - Inventory API → FEFO stock: uses stock service
src/main/java/com/lezzat/b2b2c/frozenfood/controller/InventoryController.java - Product catalog → JPA repositories: reads products and prices
src/main/java/com/lezzat/b2b2c/frozenfood/service/ProductService.java - Product catalog → Domain entities: maps catalog response
src/main/java/com/lezzat/b2b2c/frozenfood/service/ProductService.java - Order processing → FEFO stock: deducts stock
src/main/java/com/lezzat/b2b2c/frozenfood/service/OrderB2CService.java - Order processing → JPA repositories: loads and saves orders
src/main/java/com/lezzat/b2b2c/frozenfood/service/OrderB2CService.java - FEFO stock → JPA repositories: loads ordered batches
src/main/java/com/lezzat/b2b2c/frozenfood/service/core/FefoInventoryService.java - FEFO stock → Domain entities: updates batch stock
src/main/java/com/lezzat/b2b2c/frozenfood/service/core/FefoInventoryService.java - Delivery API → Delivery planning: delegates
src/main/java/com/lezzat/b2b2c/frozenfood/controller/DeliveryController.java - Delivery planning → Routing and scheduling: plans delivery
src/main/java/com/lezzat/b2b2c/frozenfood/service/DeliveryService.java - Delivery planning → JPA repositories: reads and saves delivery
src/main/java/com/lezzat/b2b2c/frozenfood/service/DeliveryService.java - Delivery planning → Domain entities: updates order charge
src/main/java/com/lezzat/b2b2c/frozenfood/service/DeliveryService.java - Payment API → Payment handling: delegates
- Payment handling → Payment gateway: initiates payment
- Reports API → Sales reporting: delegates
- Invoice PDF → JPA repositories: reads order and payment
src/main/java/com/lezzat/b2b2c/frozenfood/service/NotaPdfService.java - JPA repositories → Domain entities: persists
src/main/java/com/lezzat/b2b2c/frozenfood/repository/OrderRepository.java - JPA repositories → Application database: queries and writes
- Batch management → JPA repositories: uses batch data
src/main/java/com/lezzat/b2b2c/frozenfood/service/ProductBatchService.java - Tiered pricing → JPA repositories: uses price data
src/main/java/com/lezzat/b2b2c/frozenfood/service/TieringPriceService.java - Expiry alerts → JPA repositories: checks expiring batches
- Sales reporting → JPA repositories: queries sales data
src/main/java/com/lezzat/b2b2c/frozenfood/service/ReportService.java