|
| 1 | +# Welcome to OrderFlow |
| 2 | + |
| 3 | +## OrderFlow |
| 4 | +OrderFlow is a real-time e-commerce order tracking platform built with **Spring Boot**, **Spring Cloud**, **Apache Kafka**, and **Angular**. |
| 5 | +It enables seamless order creation, real-time delivery tracking, and live updates through event streaming. |
| 6 | + |
| 7 | +{ width="900px" } |
| 8 | + |
| 9 | +## Components |
| 10 | + |
| 11 | +```mermaid |
| 12 | +graph TD |
| 13 | + A[Frontend UI] --> |REST / WebSocket| B{API Gateway}; |
| 14 | + B --> C[Apache Kafka]; |
| 15 | + C --> D[Consumer Order Service]; |
| 16 | + C --> E[Consumer Delivery Service]; |
| 17 | + F[Consul Registry] |
| 18 | + G[Kafka UI] |
| 19 | +``` |
| 20 | + |
| 21 | +```mermaid |
| 22 | +graph TR |
| 23 | + A[Frontend UI (Angular + Leaflet)] --> |REST / WebSocket| B{API Gateway (Spring Cloud Gateway)}; |
| 24 | + B --> C[Apache Kafka (order-topic, delivery-topic) Simulates orders & driver location]; |
| 25 | + C --> D[Consumer Order Service (Group: order-group)]; |
| 26 | + C --> E[Consumer Delivery Service (Group: delivery-group)]; |
| 27 | + F[Consul Registry (Service Discovery & Health)] |
| 28 | + G[Kafka UI (Topic inspection)] |
| 29 | +``` |
| 30 | + |
| 31 | +## Running the Application |
| 32 | +In order to run this starter application locally you need to have [Docker](https://www.docker.com/) and [Docker-Compose](https://docs.docker.com/compose/install/) installed on your machine. |
| 33 | +Clone the repository: |
| 34 | +```bash |
| 35 | +git clone https://github.com/romdhanisam/OrderFlow.git |
| 36 | +cd OrderFlow |
| 37 | +``` |
| 38 | +```bash |
| 39 | +docker-compose up --build |
| 40 | +``` |
| 41 | +This command will build and start all the services in the docker-compose.yml file, including: |
| 42 | + |
| 43 | +1. **Kafka**: The event streaming platform that enables real-time delivery tracking. |
| 44 | +2. **Consul**: The service registry for dynamic service discovery. |
| 45 | +3. **Spring Cloud Gateway**: Handles routing and load balancing between services. |
| 46 | +4. **Producer and Consumer Services**: Handle order events and delivery tracking. |
| 47 | +5. **Frontend**: Provides the Angular UI to display the order status and driver locations. |
0 commit comments