Spring Boot Application based on microservices architecture.
- Interprocess Communication between microservices.
- Service Discovery using netflix eureka server.
- Api gateway using spring cloud gateway.
- All the api requests are authenticated using spring security and jwt token.
- Event Driven Architecture using KAFKA.
- User can register as a CUSTOMER or RESTAURANT_OWNER or DELIVERY_AGENT or ADMIN.
- User can add a new restaurant and fooditems.
- RESTAURANT_OWNER can update food items. User can see all food items offered by a restaurant.
- User can place an order. quantity of the ordered items will be updated.
- After order status is confirmed a notification will be sent to the corresponding restaurant for preparing the order.
- User can make payment. After payment is done order status will be updated as confirmed and a notification will be sent to order-service.
TO DO
- Implement Delivery Service. Take delivery distance, restaurant hours into consideration.
- Return appropriate error responses and codes.
- Implement Circuit Breaker.
- Implement micrometer for tracing
- Handle role based authorization.