Distributed Microservices-Based Platform for Homemade Dishes Ordering with EJBs, Spring Boot, and RabbitMQ Integration

تفاصيل العمل

This project implements a fully functional online homemade dishes ordering platform following the microservices architectural styleCore

Features & Actors:

Admin Functionality:

Create dish seller accounts with auto-generated passwords.

List all registered customers.

View and manage all dish seller representatives.

(Advanced) Manage shipping companies and their geographic coverage.

Receive notifications on system errors and failed payments via RabbitMQ logging and direct exchanges.

Dish Seller Representative:

Login using admin-generated credentials.

Manage dishes (add, edit, view offered dishes).

View order history, including customer and shipping details.

Customer:

Register and log into the platform.

Browse available dishes and make multi-item orders.

Track order status and view order history.

Select a preferred shipping location.

Receive real-time notifications about shipping status, payment confirmation, or order cancellation.

System Architecture & Technologies:

Microservices:

Built using multiple services, each with its own database and REST APIs.

At least 3 services:

User Management Service (EJB-based):

Developed using Enterprise JavaBeans (EJBs).

Implements Stateless and Singleton beans for authentication, registration, and admin logic.

Order Service (Spring Boot):

Handles dish selection, order creation, stock checking, and payment verification.

Sends and receives messages through RabbitMQ.

Shipping Service (Spring Boot):

Manages shipping availability by region.

Integrates with the order flow to confirm shipping before payment.

RabbitMQ for Communication:

Used to coordinate services asynchronously.

Handles:

Order stock validation

Shipping availability checks

Payment processing

System-wide event logging (info, warning, error) to a topic-based log exchange.

Direct exchange configured for:

Notifying admins about payment failures.

Forwarding only error-level logs to admins in real time.

Web-Based UI:

A fully functional web interface simulates different roles (admin, seller, customer).

Supports all required features via user-friendly interactions.

UI interacts with backend services through RESTful APIs.

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
عدد المشاهدات
11
تاريخ الإضافة
المهارات