ShewaDelivery connects customers, restaurants, and drivers on a resilient microservices platform built for Ethiopian mobile networks.
# 🔥 ShewaDelivery — Real-Time Food Delivery Platform
> **SEND5232 — Software Architecture and Design**
> Shewit Amha · UGR/188671/16
> Mekelle University · EIT-M · Section 6 — Implementation Prototype
---
## 📌 Overview
**ShewaDelivery** is an interactive front-end prototype demonstrating a real-time food delivery platform built for Ethiopian mobile networks. The prototype showcases three integrated modules — Order Flow, Driver Assignment, and Restaurant Dashboard — all in a single self-contained HTML file with no dependencies other than Google Fonts.
The system is designed around a **microservices architecture**, event-driven messaging via RabbitMQ, and live GPS tracking suited to the conditions of Mekelle, Tigray, Ethiopia.
---
## 🗂️ Repository Structure
```
ShewaDelivery/
├── ShewaDelivery.html # Full interactive prototype (single file)
└── README.md # This file
```
---
## 🚀 How to Run
No build step, no npm install, no server required.
1. Clone the repository:
```bash
git clone
github.com /ShewaDelivery.git
cd ShewaDelivery
```
2. Open the prototype in your browser:
```bash
# macOS
open ShewaDelivery.html
# Linux
xdg-open ShewaDelivery.html
# Windows
start ShewaDelivery.html
```
Or simply double-click `ShewaDelivery.html` in your file explorer.
> **Internet connection required** for Google Fonts (`fonts.googleapis.com`). The rest runs fully offline.
---
## 🧩 Modules Demonstrated
### 1 · 📦 Order Flow
Step-by-step simulation of the full order lifecycle:
| Step | Event | Technology |
|------|-------|------------|
| 1 | Customer places order | `POST /api/v1/orders` · JWT Auth · Idempotency Key |
| 2 | Event published | RabbitMQ AMQP · `order.created` topic · ≤500 ms |
| 3 | Restaurant confirms | WebSocket push · status: `PREPARING` |
| 4 | Driver assigned | Haversine nearest-driver query · MongoDB Atlas |
| 5 | Live GPS tracking | WebSocket updates every ≤5 s |
Click **Advance Status →** to walk through each stage. A l …