How evgenysaenko/delivery-service works
Delivery Service accepts shop orders over RabbitMQ, persists them as processed deliveries, exposes order lists and courier-driven status changes, and publishes a delivery-status update to the shop. Its core path runs through the REST controller, order service, converter, repository, and database. The README also describes customer email notifications and a small web frontend; email implementation details are not shown in the sampled source, so that branch is documented but unverified. Some integration wiring is likewise inferred only from the README.
Main entry points: OrderService.java Order service · OrderController.java Order REST API · ExceptionControllerAdvice.java HTTP error handling · OrderRepository.java Order repository
Components 19
Order intake
- Rabbit configuration
src/main/java/com/delivery/service/config/RabbitMQConfig.java
Delivery workflow
- Order service
src/main/java/com/delivery/service/services/OrderService.java - Customer email alert
src/main/java/com/delivery/service/services
Persistence and contracts
- Order converter
src/main/java/com/delivery/service/utils/converter/OrderConverter.java - Incoming order DTO
src/main/java/com/delivery/service/dto/OrderDto.java - Status response DTO
src/main/java/com/delivery/service/dto/OrderStatusDto.java - Delivery order entity
src/main/java/com/delivery/service/persistence/entities/Order.java - Delivery statuses
src/main/java/com/delivery/service/persistence/entities/enums/DeliveryStatus.java - Order repository
src/main/java/com/delivery/service/repositories/OrderRepository.java - Order database
Interfaces and integrations
- RabbitMQ
- Spring Boot application
src/main/java/com/delivery/service/DeliveryServiceApplication.java - Order REST API
src/main/java/com/delivery/service/controller/OrderController.java - HTTP error handling
src/main/java/com/delivery/service/exceptions/ExceptionControllerAdvice.java - Not-found exception
src/main/java/com/delivery/service/exceptions/ResourceNotFoundException.java - Error response
src/main/java/com/delivery/service/exceptions/ShopError.java - Delivery web UI
src/main/resources/static/index.js
Other components
- Online shop
- Courier / API client
Connections 15
- Online shop → RabbitMQ: sends orders
README.md - RabbitMQ → Order service: delivers messages
src/main/java/com/delivery/service/services/OrderService.java - Order service → Order converter: converts orders
src/main/java/com/delivery/service/services/OrderService.java - Order service → Order repository: saves and queries
src/main/java/com/delivery/service/services/OrderService.java - Order repository → Order database: persists orders
src/main/java/com/delivery/service/repositories/OrderRepository.java - Courier / API client → Order REST API: requests status
src/main/java/com/delivery/service/controller/OrderController.java - Order REST API → Order service: delegates updates
src/main/java/com/delivery/service/controller/OrderController.java - Order REST API → Order service: requests status lists
src/main/java/com/delivery/service/controller/OrderController.java - Order service → RabbitMQ: publishes status
src/main/java/com/delivery/service/services/OrderService.java - Rabbit configuration → RabbitMQ: configures messaging
- Order REST API → Not-found exception: throws when absent
src/main/java/com/delivery/service/controller/OrderController.java - HTTP error handling → Not-found exception: handles exception
src/main/java/com/delivery/service/exceptions/ExceptionControllerAdvice.java - HTTP error handling → Error response: builds response
src/main/java/com/delivery/service/exceptions/ExceptionControllerAdvice.java - Order service → Customer email alert: sends customer email
README.md - Spring Boot application → Order REST API: hosts REST API